Merge pull request #57536 from roberth/ngrok-update

Ngrok update + update script
This commit is contained in:
Robert Hensing 2019-03-19 11:07:33 +01:00 committed by GitHub
commit 2f410841b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 95 additions and 16 deletions

View file

@ -1,25 +1,32 @@
{ stdenv, fetchurl, unzip }:
{ stdenv, fetchurl }:
with stdenv.lib;
stdenv.mkDerivation rec {
name = "ngrok-${version}";
version = "2.2.8";
let versions = builtins.fromJSON (builtins.readFile ./versions.json);
arch = if stdenv.isi686 then "386"
else if stdenv.isx86_64 then "amd64"
else if stdenv.isAarch64 then "arm64"
else if stdenv.isArm then "arm"
else throw "Unsupported architecture";
os = if stdenv.isLinux then "linux"
else if stdenv.isDarwin then "darwin"
else throw "Unsupported os";
versionInfo = versions."${os}-${arch}";
inherit (versionInfo) version sha256 url;
src = if stdenv.isLinux && stdenv.isi686 then fetchurl {
url = "https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-i386.tgz";
sha256 = "0s5ymlaxrvm13q3mlvfirh74sx60qh56c5sgdma2r7q5qlsq41xg";
} else if stdenv.isLinux && stdenv.isx86_64 then fetchurl {
url = "https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.tgz";
sha256 = "1mn9iwgy6xzrjihikwc2k2j59igqmph0cwx17qp0ziap9lp5xxad";
} else if stdenv.isDarwin then fetchurl {
url = "https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-darwin-386.zip";
sha256 = "0yfd250b55wcpgqd00rqfaa7a82f35fmybb31q5xwdbgc2i47pbh";
} else throw "platform ${stdenv.hostPlatform.system} not supported!";
in
stdenv.mkDerivation {
name = "ngrok-${version}";
version = "${version}";
# run ./update
src = fetchurl { inherit sha256 url; };
sourceRoot = ".";
nativeBuildInputs = optional stdenv.isDarwin unzip;
unpackPhase = "cp $src ngrok";
buildPhase = "chmod a+x ngrok";
installPhase = ''
install -D ngrok $out/bin/ngrok
@ -32,7 +39,7 @@ stdenv.mkDerivation rec {
'';
homepage = https://ngrok.com/;
license = licenses.unfree;
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
maintainers = [ maintainers.bobvanderlinden ];
};
}

View file

@ -0,0 +1,40 @@
#!/usr/bin/env nix-shell
#!nix-shell -p httpie
#!nix-shell -p jq
#!nix-shell -i bash
set -eu -o pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
get_download_info() {
echo '{ "sys": "'"$1-$2"'", "response": '
http --body \
https://update.equinox.io/check \
'Accept:application/json; q=1; version=1; charset=utf-8' \
'Content-Type:application/json; charset=utf-8' \
app_id=app_goVRodbMVm \
channel=stable \
os=$1 \
goarm= \
arch=$2
# target_version=2.2.8 \
echo "}"
}
(
echo "["
get_download_info linux 386
echo ","
get_download_info linux amd64
echo ","
get_download_info linux arm
echo ","
get_download_info linux arm64
# echo ","
# get_download_info darwin 386
echo ","
get_download_info darwin amd64
echo "]"
) | jq 'map ({ (.sys): { "sys": .sys, "url": .response.download_url, "sha256": .response.checksum, "version": .response.release.version } }) | add' >versions.json

View file

@ -0,0 +1,32 @@
{
"linux-386": {
"sys": "linux-386",
"url": "https://bin.equinox.io/a/jqJ2Vvh67gW/ngrok-2.3.18-linux-386",
"sha256": "2bebb8f39a3c19ca03eaf786b97c92876216d2297046e85271478edef2cd6404",
"version": "2.3.18"
},
"linux-amd64": {
"sys": "linux-amd64",
"url": "https://bin.equinox.io/a/ik4d9aurG9/ngrok-2.3.18-linux-amd64",
"sha256": "75e19c343a208bf0e2d3b613d2fa3ce67abbf25c04a1d6be670598a4c25c1694",
"version": "2.3.18"
},
"linux-arm": {
"sys": "linux-arm",
"url": "https://bin.equinox.io/a/c2KRZoJ5cb6/ngrok-2.3.18-linux-arm",
"sha256": "af4cdb9f116104921d7fbeeac9124e545a45495b3623b2b46da996400c305d9c",
"version": "2.3.18"
},
"linux-arm64": {
"sys": "linux-arm64",
"url": "https://bin.equinox.io/a/b2NBP9tpq2E/ngrok-2.3.18-linux-arm64",
"sha256": "9e5fa5b83dc65803291b59867c664085de248a4adb3d415c4dbba1dae90a0aaf",
"version": "2.3.18"
},
"darwin-amd64": {
"sys": "darwin-amd64",
"url": "https://bin.equinox.io/a/879TXbRQQRV/ngrok-2.3.18-darwin-amd64",
"sha256": "abb643bdba7ade5dabd60488b866804d814a41d4d7144fa09e01c9260e93659d",
"version": "2.3.18"
}
}