mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-14 21:04:04 +01:00
20 lines
1.3 KiB
Bash
Executable File
20 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Fails if the crates outside the Linux-only crates that the KDE packages depend on differ from the list the
|
|
# Linux source filter uses (nix/linux/root-crates.json, read by nix/workspace-src.nix).
|
|
# Usage: tools/kde-closure-check [REPO_ROOT] (default: the repository this script is in)
|
|
set -euo pipefail
|
|
root=$(cd "${1:-$(dirname "$0")/..}" && pwd)
|
|
# the list holds the crates the Linux source needs besides crates/komorebi-linux, crates/komorebi-hotkeys and komorebi
|
|
want=$(jq -r '.[]' "$root/nix/linux/root-crates.json" | sort)
|
|
# the closure of the Linux packages on a Linux target
|
|
have=$(cd "$root" && for p in komorebi-linux komorebic komorebi-client komorebi-hotkeys komorebi; do
|
|
nice -n 19 cargo tree --offline --locked -p "$p" --target x86_64-unknown-linux-gnu --prefix none -e normal,build,dev 2>/dev/null
|
|
done | grep -o "($root/[^)]*)" | tr -d '()' | sed "s#^$root/##" \
|
|
| grep -vx -e crates/komorebi-linux -e crates/komorebi-hotkeys -e komorebi | sort -u)
|
|
if [ "$want" != "$have" ]; then
|
|
echo "Linux source filter and cargo closure differ" >&2
|
|
diff <(echo "$want") <(echo "$have") | sed 's/^</ only in root-crates.json:/; s/^>/ only in cargo closure: /' >&2
|
|
exit 1
|
|
fi
|
|
echo "ok: $(echo "$want" | wc -l) root crates match the Linux cargo closure"
|