65 lines
1.6 KiB
Bash
Executable File
65 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Nothing in this script should fail.
|
|
set -e
|
|
|
|
WORK_DIR=$(mktemp -d)
|
|
|
|
if [[ ! "$WORK_DIR" || ! -d "$WORK_DIR" ]]; then
|
|
echo "could not create temp dir"
|
|
exit 1
|
|
fi
|
|
|
|
function cleanup {
|
|
rm -rf "$WORK_DIR"
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
help() {
|
|
echo ""
|
|
echo "To fix, please (manually) re-run the script from the repository root,"
|
|
echo "commit, and submit a PR with the update:"
|
|
echo ""
|
|
echo " ./nix/build-support/check-zig-cache-hash.sh --update"
|
|
echo " git add build.zig.zon.nix"
|
|
echo " git commit -m \"nix: update build.zig.zon.nix\""
|
|
echo ""
|
|
}
|
|
|
|
BUILD_ZIG_ZON="$(realpath "$(dirname "$0")/../../build.zig.zon")"
|
|
BUILD_ZIG_ZON_LOCK="$(realpath "$(dirname "$0")/../../build.zig.zon2json-lock")"
|
|
BUILD_ZIG_ZON_NIX="$(realpath "$(dirname "$0")/../../build.zig.zon.nix")"
|
|
|
|
if [ -f "${BUILD_ZIG_ZON_NIX}" ]; then
|
|
OLD_HASH=$(sha512sum "${BUILD_ZIG_ZON_NIX}" | awk '{print $1}')
|
|
elif [ "$1" != "--update" ]; then
|
|
echo -e "\nERROR: build.zig.zon.nix missing."
|
|
help
|
|
exit 1
|
|
fi
|
|
|
|
rm -f "$BUILD_ZIG_ZON_LOCK"
|
|
zon2nix "$BUILD_ZIG_ZON" > "$WORK_DIR/build.zig.zon.nix"
|
|
alejandra --quiet "$WORK_DIR/build.zig.zon.nix"
|
|
rm -f "$BUILD_ZIG_ZON_LOCK"
|
|
|
|
NEW_HASH=$(sha512sum "$WORK_DIR/build.zig.zon.nix" | awk '{print $1}')
|
|
|
|
if [ "${OLD_HASH}" == "${NEW_HASH}" ]; then
|
|
echo -e "\nOK: build.zig.zon.nix unchanged."
|
|
exit 0
|
|
elif [ "$1" != "--update" ]; then
|
|
echo -e "\nERROR: build.zig.zon.nix needs to be updated."
|
|
echo ""
|
|
echo " * Old hash: ${OLD_HASH}"
|
|
echo " * New hash: ${NEW_HASH}"
|
|
help
|
|
exit 1
|
|
else
|
|
mv "$WORK_DIR/build.zig.zon.nix" "$BUILD_ZIG_ZON_NIX"
|
|
echo -e "\nOK: build.zig.zon.nix updated."
|
|
exit 0
|
|
fi
|
|
|