summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2019-03-19 11:07:33 +0100
committerGitHub <noreply@github.com>2019-03-19 11:07:33 +0100
commit2f410841b89bd1f0153724315bdab8ead29af03c (patch)
tree6826354ecbab9763a4e8e60f3f3a533bd8b297d3 /pkgs/tools
parent180c68d88a6f9eb5b396be83b66b4cbf603cb7de (diff)
parenta45031aa73e4df821310887b85dfddf27d41cc93 (diff)
downloadnixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.tar
nixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.tar.gz
nixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.tar.bz2
nixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.tar.lz
nixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.tar.xz
nixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.tar.zst
nixpkgs-2f410841b89bd1f0153724315bdab8ead29af03c.zip
Merge pull request #57536 from roberth/ngrok-update
Ngrok update + update script
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/networking/ngrok-2/default.nix39
-rwxr-xr-xpkgs/tools/networking/ngrok-2/update40
-rw-r--r--pkgs/tools/networking/ngrok-2/versions.json32
3 files changed, 95 insertions, 16 deletions
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok-2/default.nix
index fdf9067dfee..da598c6fbd5 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok-2/default.nix
@@ -1,25 +1,32 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchurl }:
 
 with stdenv.lib;
 
-stdenv.mkDerivation rec {
+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;
+
+in
+stdenv.mkDerivation {
   name = "ngrok-${version}";
-  version = "2.2.8";
-
-  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!";
+  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 ];
   };
 }
diff --git a/pkgs/tools/networking/ngrok-2/update b/pkgs/tools/networking/ngrok-2/update
new file mode 100755
index 00000000000..62b0c7e545e
--- /dev/null
+++ b/pkgs/tools/networking/ngrok-2/update
@@ -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
diff --git a/pkgs/tools/networking/ngrok-2/versions.json b/pkgs/tools/networking/ngrok-2/versions.json
new file mode 100644
index 00000000000..3d7aa8a56b6
--- /dev/null
+++ b/pkgs/tools/networking/ngrok-2/versions.json
@@ -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"
+  }
+}