#!/bin/bash
-# To run this, you need to first install cargo-vendor.
+# To run this, you need to first install cargo-lock.
#
# TODO: this script has a known bug in: if the Debian patches being applied,
# changes the set of dependencies, then "cargo vendor" is not re-run in order
SCRIPTDIR="$(dirname "$(readlink -f "$0")")"
not_needed() {
- diff -ru Cargo.lock.orig Cargo.lock | grep '^-"checksum' | cut '-d ' -f2-3
+ diff -ur packages-before packages-after | grep "^-- " | cut -d' ' -f2-3
}
ghetto_parse_cargo() {
directory = "$PWD/vendor"
eof
cargo update
+cargo lock list > packages-before
cp Cargo.lock Cargo.lock.orig
if [ -d debcargo-conf ]; then ( cd debcargo-conf && git pull );
done
find vendor/*/debian/patches -name '*~' -delete || true
cargo update
+cargo lock list > packages-after
pruned_paths | while read x; do echo >&2 "$0: removing, because debcargo-conf patches makes it obsolete: $x"; rm -rf "$x"; done
# remove excluded files
)
echo >&2 "$0: cleaning up..."
-rm -rf .cargo Cargo.lock debcargo-conf
+rm -rf .cargo Cargo.lock debcargo-conf packages-before packages-after
echo >&2 "$0: restoring original Cargo.lock"
mv Cargo.lock.orig Cargo.lock