[vlc-devel] [PATCHv3 5/7] contrib: add cargo-vendor-archive.sh script

Alexandre Janniaux ajanni at videolabs.io
Fri Sep 4 18:26:05 CEST 2020


Hi,

On Thu, Aug 27, 2020 at 04:44:19PM +0200, Thomas Guillem wrote:
> This script can be used to package a cargo vendor archive containing all
> dependencies of a Rust project. If this archive is uploaded to the VideoLAN
> FTP, the contrib's cargo will try to use it instead of using crates.io.
>
> This will also allow us to keep all Rust dependencies.
> ---
>  contrib/cargo-vendor-archive.sh | 50 +++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
>  create mode 100755 contrib/cargo-vendor-archive.sh

Shouldn't this be in contrib/src/ instead ?

>
> diff --git a/contrib/cargo-vendor-archive.sh b/contrib/cargo-vendor-archive.sh
> new file mode 100755
> index 00000000000..45442e67364
> --- /dev/null
> +++ b/contrib/cargo-vendor-archive.sh
> @@ -0,0 +1,50 @@
> +#!/bin/sh
> +
> +set -e
> +
> +usage()
> +{
> +cat << EOF
> +usage: $0 <archive>
> +
> +Fetch and archive all dependencies from a Rust archive using 'cargo vendor'.
> +EOF
> +}
> +
> +if [ "x$1" = "x" ]; then

Maybe test $# too?

> +    usage
> +    exit 1
> +fi
> +
> +# Setup cargo path
> +CARGO=
> +if [ -d "$(dirname $0)/bin/.cargo" ];then
> +    CARGO_HOME=$(cd $(dirname $0)/bin/.cargo && pwd)
Missing quotes between the $() call.
> +    CARGO="CARGO_HOME=\"${CARGO_HOME}\" \"${CARGO_HOME}/bin/cargo\""
> +else
> +    CARGO=cargo
> +fi
> +
> +# Extract archive into a tmp dir
> +TMP_DIR=.tmp-$(basename $1)

Missing quotes between the $() call.

> +rm -rf ${TMP_DIR}

Missing quotes between ${TMP_DIR}.

> +mkdir ${TMP_DIR}
> +
> +tar xf "$1" -C ${TMP_DIR}
> +cd ${TMP_DIR}/*

> +
> +# Fetch all dependencies
> +eval ${CARGO} vendor --locked
> +
> +# Archive all dependencies
> +name=$(basename `pwd`)-vendor

Missing quotes between the $() call.

> +tar -jcf "../../${name}.tar.bz2" vendor --transform "s,vendor,${name},"
> +cd ../..
> +rm -rf ${TMP_DIR}

Missing quotes between ${TMP_DIR}.

> +
> +echo ""
> +echo "Please upload this package '${name}.tar.bz2' to our VideoLAN FTP,"
> +echo ""
> +echo "and write the following checksum into the contrib/src/<project>/cargo-vendor-SHA512SUMS:"
> +echo ""
> +sha512sum ${name}.tar.bz2

Regards,
--
Alexandre Janniaux
Videolabs


More information about the vlc-devel mailing list