Skip to content
Snippets Groups Projects
Commit 617f33c5 authored by Thomas Guillem's avatar Thomas Guillem
Browse files

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.
parent b1667397
No related branches found
No related tags found
Loading
#!/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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment