ngrok-2: Fix URLs and automate

This commit is contained in:
Robert Hensing 2019-03-12 18:19:10 +01:00
parent 348a2bc3a5
commit 794750fce2
3 changed files with 94 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,39 @@
#!/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= \
target_version=2.2.8 \
arch=$2
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/2yoqc96ESxb/ngrok-2.2.8-linux-386",
"sha256": "bfa30baf1a6e31cc152a39d0db9849dbae0bc9e75b3405d92b60b66d1e6e6a32",
"version": "2.2.8"
},
"linux-amd64": {
"sys": "linux-amd64",
"url": "https://bin.equinox.io/a/67p452rfRWJ/ngrok-2.2.8-linux-amd64",
"sha256": "a5d0e85f370d66c77c7e850c43e3cc5a09ef24e677ba64c38207c6b00aae4647",
"version": "2.2.8"
},
"linux-arm": {
"sys": "linux-arm",
"url": "https://bin.equinox.io/a/cxXSbVrW7ue/ngrok-2.2.8-linux-arm",
"sha256": "c34a074bd9c33c7179cdd9e58735c1fdea4e472405608a8b2cb098ad4ca5da69",
"version": "2.2.8"
},
"linux-arm64": {
"sys": "linux-arm64",
"url": "https://bin.equinox.io/a/dS5TkJ3xTyi/ngrok-2.2.8-linux-arm64",
"sha256": "9d42324a3e9dbddfe3cfd62f5e3334b9e2b4a3650ed6ace8d18e21a026a2acc3",
"version": "2.2.8"
},
"darwin-amd64": {
"sys": "darwin-amd64",
"url": "https://bin.equinox.io/a/a7g7TTeof5/ngrok-2.2.8-darwin-amd64",
"sha256": "0b16d445db681b0c85c24992c45488ad859b73a5be982863dcd0467eca4459dd",
"version": "2.2.8"
}
}