about summary refs log tree commit diff
path: root/pkgs/by-name/pg/pgrok/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/pg/pgrok/package.nix')
-rw-r--r--pkgs/by-name/pg/pgrok/package.nix75
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/by-name/pg/pgrok/package.nix b/pkgs/by-name/pg/pgrok/package.nix
new file mode 100644
index 0000000000000..0aed3b49f8075
--- /dev/null
+++ b/pkgs/by-name/pg/pgrok/package.nix
@@ -0,0 +1,75 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nix-update-script
+, nodejs
+, pnpm
+}:
+
+let
+  pname = "pgrok";
+  version = "1.4.1";
+  src = fetchFromGitHub {
+    owner = "pgrok";
+    repo = "pgrok";
+    rev = "v${version}";
+    hash = "sha256-P36rpFi5J+dF6FrVaPhqupG00h4kwr0qumt4ehL/7vU=";
+  };
+in
+
+buildGoModule {
+  inherit pname version src;
+
+  outputs = [ "out" "server" ];
+
+  nativeBuildInputs = [
+    nodejs
+    pnpm.configHook
+  ];
+
+  pnpmDeps = pnpm.fetchDeps {
+    inherit pname version src;
+    hash = "sha256-1PUcISW1pC9+5HZyI9SIDRyhos5f/6aW1wa2z0OKams=";
+  };
+
+  vendorHash = "sha256-X5FjzliIJdfJnNaUXBjv1uq5tyjMVjBbnLCBH/P0LFM=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+    "-X main.commit=unknown"
+    "-X main.date=unknown"
+  ];
+
+  subPackages = [
+    "pgrok/pgrok"
+    "pgrokd/pgrokd"
+  ];
+
+  preBuild = ''
+    pushd pgrokd/web
+
+    pnpm run build
+
+    popd
+
+    # rename packages due to naming conflict
+    mv pgrok/cli/ pgrok/pgrok/
+    mv pgrokd/cli/ pgrokd/pgrokd/
+  '';
+
+  postInstall = ''
+    moveToOutput bin/pgrokd $server
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Selfhosted TCP/HTTP tunnel, ngrok alternative, written in Go";
+    homepage = "https://github.com/pgrok/pgrok";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ marie ];
+    mainProgram = "pgrok";
+  };
+}