@@ -4,8 +4,8 @@ set -euo pipefail
44
55DUMMY=" sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
66MODELS_URL=${MODELS_URL:- https:// models.dev/ api.json}
7- MODELS_FILE =${MODELS_FILE :- nix/ models-dev.nix }
8- HASH_FILE=${MODULES_HASH_FILE :- nix / node-modules-hashes.json }
7+ DEFAULT_HASH_FILE =${MODULES_HASH_FILE :- nix/ hashes.json }
8+ HASH_FILE=${HASH_FILE :- $DEFAULT_HASH_FILE }
99export DUMMY
1010
1111if [ -z " ${SYSTEMS:- } " ]; then
@@ -18,7 +18,12 @@ if [ -z "$SYSTEMS" ]; then
1818fi
1919
2020if [ ! -f " $HASH_FILE " ]; then
21- echo " {}" > " $HASH_FILE "
21+ cat << 'EOF ' >"$HASH_FILE"
22+ {
23+ "models": {},
24+ "nodeModules": {}
25+ }
26+ EOF
2227fi
2328
2429echo " Refreshing models-dev hash..."
@@ -29,19 +34,14 @@ if [ -z "$MODELS_HASH" ]; then
2934 exit 1
3035fi
3136
32- current_models_hash=" $( perl -0ne ' print $1 if /hash\s*=\s*"(sha256-[^"]+)";/ ' " $MODELS_FILE " ) "
37+ current_models_hash=" $( jq -r ' .models.dev // empty ' " $HASH_FILE " ) "
3338
3439if [ " $MODELS_HASH " != " $current_models_hash " ]; then
35- export MODELS_HASH
36- perl -0pi -e ' s/(hash\s*=\s*")sha256-[^"]+(")/${1}$ENV{MODELS_HASH}${2}/' " $MODELS_FILE "
37- if ! grep -q " $MODELS_HASH " " $MODELS_FILE " ; then
38- echo " Failed to update models-dev hash"
39- exit 1
40- fi
40+ tmp=$( mktemp)
41+ jq --arg value " $MODELS_HASH " ' .models.dev = $value' " $HASH_FILE " > " $tmp "
42+ mv " $tmp " " $HASH_FILE "
4143 echo " models-dev hash updated: $MODELS_HASH "
42- fi
43-
44- if [ " $MODELS_HASH " = " $current_models_hash " ]; then
44+ else
4545 echo " models-dev hash already up to date: $MODELS_HASH "
4646fi
4747
@@ -56,19 +56,19 @@ cleanup() {
5656
5757trap cleanup EXIT
5858
59- write_hash () {
59+ write_node_modules_hash () {
6060 local value=" $1 "
6161 local temp
6262 temp=$( mktemp)
63- jq --arg system " $SYSTEM " --arg value " $value " ' .[$system] = $value' " $HASH_FILE " > " $temp "
63+ jq --arg system " $SYSTEM " --arg value " $value " ' .nodeModules [$system] = $value' " $HASH_FILE " > " $temp "
6464 mv " $temp " " $HASH_FILE "
6565}
6666
6767for SYSTEM in $SYSTEMS ; do
6868 TARGET=" packages.${SYSTEM} .default"
6969
7070 echo " Setting dummy node_modules outputHash for ${SYSTEM} ..."
71- write_hash " $DUMMY "
71+ write_node_modules_hash " $DUMMY "
7272
7373 JSON_OUTPUT=$( mktemp)
7474 BUILD_LOG=$( mktemp)
@@ -98,9 +98,9 @@ for SYSTEM in $SYSTEMS; do
9898 exit 1
9999 fi
100100
101- write_hash " $CORRECT_HASH "
101+ write_node_modules_hash " $CORRECT_HASH "
102102
103- if ! jq -e --arg system " $SYSTEM " --arg hash " $CORRECT_HASH " ' .[ $system ] == $hash' " $HASH_FILE " > /dev/null; then
103+ if ! jq -e --arg system " $SYSTEM " --arg hash " $CORRECT_HASH " ' .nodeModules[ $system] == $hash' " $HASH_FILE " > /dev/null; then
104104 echo " Failed to persist node_modules hash for ${SYSTEM} "
105105 exit 1
106106 fi
0 commit comments