mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-14 15:56:13 +03:00

NixOS does not set this during Nix package builds. Probably Nix's caching got in the way of detecting this on my system.
64 lines
1.8 KiB
Bash
Executable File
64 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Nothing in this script should fail.
|
|
set -e
|
|
|
|
CACHE_HASH_FILE="$(realpath "$(dirname "$0")/../zigCacheHash.nix")"
|
|
|
|
help() {
|
|
echo ""
|
|
echo "To fix, please (manually) re-run the script from the repository root,"
|
|
echo "commit, and push the update:"
|
|
echo ""
|
|
echo " ./nix/build-support/check-zig-cache-hash.sh --update"
|
|
echo " git add nix/zigCacheHash.nix"
|
|
echo " git commit -m \"nix: update Zig cache hash\""
|
|
echo " git push"
|
|
echo ""
|
|
}
|
|
|
|
if [ -f "${CACHE_HASH_FILE}" ]; then
|
|
OLD_CACHE_HASH="$(nix eval --raw --file "${CACHE_HASH_FILE}")"
|
|
elif [ "$1" != "--update" ]; then
|
|
echo -e "\nERROR: Zig cache hash file missing."
|
|
help
|
|
exit 1
|
|
fi
|
|
|
|
ZIG_GLOBAL_CACHE_DIR="$(mktemp --directory --suffix nix-zig-cache)"
|
|
export ZIG_GLOBAL_CACHE_DIR
|
|
|
|
# This is not 100% necessary in CI but is helpful when running locally to keep
|
|
# a local workstation clean.
|
|
trap 'rm -rf "${ZIG_GLOBAL_CACHE_DIR}"' EXIT
|
|
|
|
# Run Zig and download the cache to the temporary directory.
|
|
|
|
sh ./fetch-zig-cache.sh
|
|
|
|
# Now, calculate the hash.
|
|
ZIG_CACHE_HASH="sha256-$(nix-hash --type sha256 --to-base64 "$(nix-hash --type sha256 "${ZIG_GLOBAL_CACHE_DIR}")")"
|
|
|
|
if [ "${OLD_CACHE_HASH}" == "${ZIG_CACHE_HASH}" ]; then
|
|
echo -e "\nOK: Zig cache store hash unchanged."
|
|
exit 0
|
|
elif [ "$1" != "--update" ]; then
|
|
echo -e "\nERROR: The Zig cache store hash has updated."
|
|
echo ""
|
|
echo " * Old hash: ${OLD_CACHE_HASH}"
|
|
echo " * New hash: ${ZIG_CACHE_HASH}"
|
|
help
|
|
exit 1
|
|
else
|
|
echo -e "\nNew Zig cache store hash: ${ZIG_CACHE_HASH}"
|
|
fi
|
|
|
|
# Write out the cache file
|
|
cat > "${CACHE_HASH_FILE}" <<EOS
|
|
# This file is auto-generated! check build-support/check-zig-cache-hash.sh for
|
|
# more details.
|
|
"${ZIG_CACHE_HASH}"
|
|
EOS
|
|
|
|
echo -e "\nOK: Wrote new hash to file: ${CACHE_HASH_FILE}"
|