[vlc-commits] contrib: add cargo-vendor-archive.sh script
Thomas Guillem
git at videolan.org
Thu Sep 10 12:43:23 CEST 2020
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Tue Aug 25 15:10:53 2020 +0200| [617f33c5b2317f26be1996a6670727140cb600c2] | committer: Thomas Guillem
contrib: add cargo-vendor-archive.sh script
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.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=617f33c5b2317f26be1996a6670727140cb600c2
---
contrib/cargo-vendor-archive.sh | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/contrib/cargo-vendor-archive.sh b/contrib/cargo-vendor-archive.sh
new file mode 100755
index 0000000000..45442e6736
--- /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
+ usage
+ exit 1
+fi
+
+# Setup cargo path
+CARGO=
+if [ -d "$(dirname $0)/bin/.cargo" ];then
+ CARGO_HOME=$(cd $(dirname $0)/bin/.cargo && pwd)
+ 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}/*
+
+# Fetch all dependencies
+eval ${CARGO} vendor --locked
+
+# Archive all dependencies
+name=$(basename `pwd`)-vendor
+tar -jcf "../../${name}.tar.bz2" vendor --transform "s,vendor,${name},"
+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
More information about the vlc-commits
mailing list