diff --git a/maintainers/scripts/update-iojs b/maintainers/scripts/update-iojs new file mode 100755 index 000000000000..e9accf273bf8 --- /dev/null +++ b/maintainers/scripts/update-iojs @@ -0,0 +1,43 @@ +#!/bin/sh + +latest() { + curl -s "$1" | grep 'href="v' \ + | tail -1 | sed 's/.*href="v//;s/\/".*//' +} + +latest_log() { + echo "Getting latest $1 version from $2" >&2 + version=$(latest "$2") + echo " -> $version" >&2 + echo "$version" +} + +url() { + nix-instantiate -A "$1" 2> /dev/null | xargs cat \ + | sed 's/.*"urls","//;s/".*//' +} + +hash() { + nix-prefetch-url "$1" 2> /dev/null +} + +hash_log() { + echo "Finding hash for $1" >&2 + value=$(hash "$1") + echo " -> $value" >&2 + echo "$value" +} + +stable=$(latest_log stable 'https://iojs.org/dist/') +nightly=$(latest_log nightly 'https://iojs.org/download/nightly/') + +sed -i \ + "/version = if nightly/s/then.*/then \"$nightly\" else \"$stable\";/" \ + pkgs/development/web/iojs/default.nix + +stableHash=$(hash_log "$(url iojs.src)") +nightlyHash=$(hash_log "$(url iojs-nightly.src)") + +sed -i \ + "/sha256 = if nightly/{N;s/\"[^\"]*\"/\"$nightlyHash\"/;N;s/\"[^\"]*\";/\"$stableHash\";/}" \ + pkgs/development/web/iojs/default.nix