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