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

Thomas Guillem thomas at gllm.fr
Wed Aug 26 14:31:00 CEST 2020


Thanks for your reviews.

All your comments have been taken into consideration.

On Wed, Aug 26, 2020, at 11:08, Alexandre Janniaux wrote:
> Hi,
> 
> On Wed, Aug 26, 2020 at 08:33:33AM +0200, Steve Lhomme wrote:
> > On 2020-08-25 16:45, 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 | 53 +++++++++++++++++++++++++++++++++
> > >   1 file changed, 53 insertions(+)
> > >   create mode 100755 contrib/cargo-vendor-archive.sh
> > >
> > > diff --git a/contrib/cargo-vendor-archive.sh b/contrib/cargo-vendor-archive.sh
> > > new file mode 100755
> > > index 00000000000..dc7aeef0004
> > > --- /dev/null
> > > +++ b/contrib/cargo-vendor-archive.sh
> > > @@ -0,0 +1,53 @@
> > > +#!/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
> > > +    usage
> > > +    exit 1
> > > +fi
> > > +
> > > +# Setup cargo path
> > > +CARGO=
> > > +if [ -d "$(dirname $0)/bin/.cargo" ];then
> > > +    CARGO_HOME=$(realpath $(dirname $0)/bin/.cargo)
> >
> > IIRC realpath doesn't exist on Mac.
> 
> To be precise it does depending on your shell, but it doesn't
> exist as builtin in bash and doesn't exist on mac as a separate
> binary, so using pwd seems better.
> 
> Regards,
> --
> Alexandre Janniaux
> Videolabs
> 
> >
> > > +    CARGO="CARGO_HOME=\"${CARGO_HOME}\" ${CARGO_HOME}/bin/cargo"
> > > +else
> > > +    CARGO=cargo
> > > +fi
> > > +
> > > +# Extract archive into a tmp dir
> > > +TMP_DIR=.tmp-$(basename $1)
> > > +rm -rf ${TMP_DIR}
> > > +mkdir ${TMP_DIR}
> > > +
> > > +tar xf $1 -C ${TMP_DIR}
> > > +cd ${TMP_DIR}/*
> >
> > What does the * do here ?
> >
> > > +
> > > +# Fetch all dependencies
> > > +eval ${CARGO} vendor --locked
> > > +
> > > +# Archive all dependencies
> > > +name=$(basename `pwd`)-vendor
> > > +tar -jcf ${name}.tar.bz2 vendor --transform "s,vendor,${name},"
> > > +
> > > +mv ${name}.tar.bz2 ../..
> >
> > Can't you extract to ../.. directly ?
> >
> > > +cd ../..
> > > +
> > > +rm -rf ${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
> > > --
> > > 2.28.0
> > >
> > > _______________________________________________
> > > vlc-devel mailing list
> > > To unsubscribe or modify your subscription options:
> > > https://mailman.videolan.org/listinfo/vlc-devel
> > >
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel


More information about the vlc-devel mailing list