2014-10-03 18:06:49 +04:00
#!/bin/sh
2018-09-11 17:11:27 +03:00
set -xeuo pipefail
2014-10-03 18:06:49 +04:00
srcdir = $1
shift
PKG_VER = $1
shift
GITREV = $1
shift
TARFILE = ${ PKG_VER } .tar
2018-06-06 00:49:48 +03:00
TARFILE_TMP = $( pwd ) /${ TARFILE } .tmp
2014-10-03 18:06:49 +04:00
test -n " ${ srcdir } "
test -n " ${ PKG_VER } "
test -n " ${ GITREV } "
TOP = $( git rev-parse --show-toplevel)
echo " Archiving ${ PKG_VER } at ${ GITREV } to ${ TARFILE_TMP } "
( cd ${ TOP } ; git archive --format= tar --prefix= ${ PKG_VER } / ${ GITREV } ) > ${ TARFILE_TMP }
ls -al ${ TARFILE_TMP }
( cd ${ TOP } ; git submodule status) | while read line; do
rev = $( echo ${ line } | cut -f 1 -d ' ' ) ; path = $( echo ${ line } | cut -f 2 -d ' ' )
echo " Archiving ${ path } at ${ rev } "
( cd ${ srcdir } /${ path } ; git archive --format= tar --prefix= ${ PKG_VER } /${ path } / ${ rev } ) > submodule.tar
tar -A -f ${ TARFILE_TMP } submodule.tar
rm submodule.tar
done
2018-06-06 00:49:48 +03:00
tmpd = ${ TOP } /.dist-tmp
trap cleanup EXIT
function cleanup ( ) {
if test -f ${ tmpd } /.tmp; then
rm " ${ tmpd } " -rf
fi
}
# Run it now
cleanup
mkdir ${ tmpd } && touch ${ tmpd } /.tmp
( cd ${ tmpd }
mkdir -p .cargo vendor
cargo vendor -q --sync ${ TOP } /rust/Cargo.toml vendor
cp ${ TOP } /rust/Cargo.lock .
cp ${ TOP } /rust/cargo-vendor-config .cargo/config
2018-09-11 17:13:09 +03:00
# Filter out bundled libcurl from curl-sys; we always want the system libcurl
rm -rf vendor/curl-sys/curl/
python -c '
import json, sys; j = json.load( open( sys.argv[ 1] ) )
j[ "files" ] = { f:c for f, c in j[ "files" ] .items( ) if not f.startswith( "curl/" ) }
open( sys.argv[ 1] , "w" ) .write( json.dumps( j) ) ' vendor/curl-sys/.cargo-checksum.json
2018-06-08 18:26:09 +03:00
tar --transform= " s,^, ${ PKG_VER } /rust/, " -rf ${ TARFILE_TMP } * .cargo/
2018-06-06 00:49:48 +03:00
)
2018-09-22 01:02:18 +03:00
# And finally, vendor rpmostree-rust.h; it's generated by cbindgen,
# and it's easier than vendoring all of the source for that too.
# This is currently the *only* generated file we treat this way. See also
# https://github.com/projectatomic/rpm-ostree/pull/1573
( cd ${ srcdir } && tar --transform " s,^, ${ PKG_VER } /, " -rf ${ TARFILE_TMP } rpmostree-rust.h)
2014-10-03 18:06:49 +04:00
mv ${ TARFILE_TMP } ${ TARFILE }