vlc | branch: master | Thomas Guillem <[email protected]> | 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

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to