Skip to content

Commit

Permalink
nodejs: Add updater script
Browse files Browse the repository at this point in the history
  • Loading branch information
adisbladis committed Feb 18, 2018
1 parent e1bd5b3 commit 43cf893
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
9 changes: 9 additions & 0 deletions 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
}:

Expand Down Expand Up @@ -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;
Expand Down
27 changes: 27 additions & 0 deletions 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}"
''

0 comments on commit 43cf893

Please sign in to comment.