1{ lib
2, writeScript
3, coreutils
4, curl
5, gnugrep
6, jq
7, gnupg
8, common-updater-scripts
9, majorVersion
10, nix
11, runtimeShell
12}:
13
14writeScript "update-nodejs" ''
15 #!${runtimeShell}
16 PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep jq gnupg nix ]}
17
18 HOME=`mktemp -d`
19 cat ${./nodejs-release-keys.asc} | gpg --import
20
21 tags=`curl --silent https://api.github.com/repos/nodejs/node/git/refs/tags`
22 version=`echo $tags | jq -r '.[] | select(.ref | startswith("refs/tags/v${majorVersion}")) | .ref' | sort --version-sort | tail -1 | grep -oP "^refs/tags/v\K.*"`
23
24 curl --silent -o $HOME/SHASUMS256.txt.asc https://nodejs.org/dist/v''${version}/SHASUMS256.txt.asc
25 hash_hex=`gpgv --keyring=$HOME/.gnupg/pubring.kbx --output - $HOME/SHASUMS256.txt.asc | grep -oP "^([0-9a-f]{64})(?=\s+node-v''${version}.tar.xz$)"`
26 hash=`nix-hash --type sha256 --to-base32 ''${hash_hex}`
27
28 update-source-version nodejs-${majorVersion}_x "''${version}" "''${hash}"
29''