Update check_tree to better detect errors in cargo-tree.
This commit is contained in:
parent
349f9d5000
commit
677f1b8af0
|
@ -3,17 +3,37 @@
|
|||
# Use cargo-tree to check our dependencies for crates which we must
|
||||
# not depend on unconditionally.
|
||||
|
||||
set -eu
|
||||
|
||||
forbid () {
|
||||
local our_crate="$1"
|
||||
local feature="$2"
|
||||
local forbidden="$3"
|
||||
if cargo tree -i "$forbidden" -p "$our_crate" --features "$feature" 2>/dev/null ; then
|
||||
echo "Uh-oh: $forbidden has shown up in $our_crate/$feature."
|
||||
exit 1
|
||||
else
|
||||
echo "Didn't find $forbidden in $our_crate/$feature. Good."
|
||||
fi
|
||||
|
||||
set +e
|
||||
cargo tree --prefix=none -p "$our_crate" --features "$feature" \
|
||||
--format=" {p}" | grep "^ $forbidden"
|
||||
local result="${PIPESTATUS[*]}"
|
||||
set -e
|
||||
|
||||
case "$result" in
|
||||
"0 0")
|
||||
# cargo-tree succeeded, and so did grep: we found the
|
||||
# forbidden package.
|
||||
echo "Uh-oh: $forbidden has shown up in $our_crate/$feature."
|
||||
exit 1
|
||||
;;
|
||||
"0 1")
|
||||
# cargo-tree succeeded, and grep failed: we didn't find the
|
||||
# forbidden package.
|
||||
echo "Didn't find $forbidden in $our_crate/$feature. Good."
|
||||
;;
|
||||
*)
|
||||
# cargo-tree failed (or maybe grep is gruesomely nonstandard)
|
||||
echo "cargo tree failed unexpectedly when checking for $forbidden in $our_crate/$feature" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# We can't use these crates in arti/full, since they expose us to the old
|
||||
|
|
Loading…
Reference in New Issue