From 43cf893d44aede3ecb62399f5c28c0046a5148f4 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 18 Feb 2018 22:19:01 +0800 Subject: nodejs: Add updater script --- pkgs/development/web/nodejs/nodejs.nix | 9 +++++++++ pkgs/development/web/nodejs/update.nix | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 pkgs/development/web/nodejs/update.nix diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix index 8d8a253f01d..263de2ec96b 100644 --- a/pkgs/development/web/nodejs/nodejs.nix +++ b/pkgs/development/web/nodejs/nodejs.nix @@ -1,5 +1,8 @@ { stdenv, fetchurl, openssl, python2, zlib, libuv, utillinux, http-parser , pkgconfig, which +# Updater dependencies +, writeScript, coreutils, gnugrep, jq, curl, common-updater-scripts, nix +, gnupg , darwin ? null }: @@ -78,6 +81,12 @@ in ''} ''; + passthru.updateScript = import ./update.nix { + inherit writeScript coreutils gnugrep jq curl common-updater-scripts gnupg nix; + inherit (stdenv) lib; + majorVersion = with stdenv.lib; elemAt (splitString "." version) 0; + }; + meta = { description = "Event-driven I/O framework for the V8 JavaScript engine"; homepage = https://nodejs.org; diff --git a/pkgs/development/web/nodejs/update.nix b/pkgs/development/web/nodejs/update.nix new file mode 100644 index 00000000000..9ff11982b65 --- /dev/null +++ b/pkgs/development/web/nodejs/update.nix @@ -0,0 +1,27 @@ +{ lib +, writeScript +, coreutils +, curl +, gnugrep +, jq +, gnupg +, common-updater-scripts +, majorVersion +, nix +}: + +writeScript "update-nodejs" '' + PATH=${lib.makeBinPath [ common-updater-scripts coreutils curl gnugrep jq gnupg nix ]} + + HOME=`mktemp -d` + cat ${./nodejs-release-keys.asc} | gpg --import + + tags=`curl --silent https://api.github.com/repos/nodejs/node/git/refs/tags` + version=`echo $tags | jq -r '.[] | select(.ref | startswith("refs/tags/v${majorVersion}")) | .ref' | sort --version-sort | tail -1 | grep -oP "^refs/tags/v\K.*"` + + curl --silent -o $HOME/SHASUMS256.txt.asc https://nodejs.org/dist/v''${version}/SHASUMS256.txt.asc + 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$)"` + hash=`nix-hash --type sha256 --to-base32 ''${hash_hex}` + + update-source-version nodejs-${majorVersion}_x "''${version}" "''${hash}" +'' -- cgit 1.4.1