yafc-ce: 2.6.0 -> 2.7.0 (#378873)
[NixPkgs.git] / pkgs / by-name / pg / pgrok / package.nix
blobdd3c674b7416d03f72beff1d0197df4046473579
2   lib,
3   buildGoModule,
4   fetchFromGitHub,
5   nix-update-script,
6   nodejs,
7   pnpm_9,
8 }:
10 let
11   pname = "pgrok";
12   version = "1.4.4";
13   src = fetchFromGitHub {
14     owner = "pgrok";
15     repo = "pgrok";
16     tag = "v${version}";
17     hash = "sha256-1T3PUMgtEfjbCFmUKwKVofHPCCE0Hw1F18iC0mfh4KQ=";
18   };
21 buildGoModule {
22   inherit pname version src;
24   outputs = [
25     "out"
26     "server"
27   ];
29   nativeBuildInputs = [
30     nodejs
31     pnpm_9.configHook
32   ];
34   env.pnpmDeps = pnpm_9.fetchDeps {
35     inherit pname version src;
36     hash = "sha256-xObDEkNGMXcUqX9thAJoE45yzd7f15k2odDWv9X3RRE=";
37   };
39   vendorHash = "sha256-1s8PPP/Q5bSJleCPZ6P4BwLEan/lelohRKX/0RStdvY=";
41   ldflags = [
42     "-s"
43     "-w"
44     "-X main.version=${version}"
45     "-X main.commit=unknown"
46     "-X main.date=unknown"
47   ];
49   subPackages = [
50     "pgrok/pgrok"
51     "pgrokd/pgrokd"
52   ];
54   preBuild = ''
55     pushd pgrokd/web
57     pnpm run build
59     popd
61     # rename packages due to naming conflict
62     mv pgrok/cli/ pgrok/pgrok/
63     mv pgrokd/cli/ pgrokd/pgrokd/
64   '';
66   postInstall = ''
67     moveToOutput bin/pgrokd $server
68   '';
70   passthru.updateScript = nix-update-script { };
72   meta = {
73     description = "Selfhosted TCP/HTTP tunnel, ngrok alternative, written in Go";
74     homepage = "https://github.com/pgrok/pgrok";
75     license = lib.licenses.mit;
76     maintainers = with lib.maintainers; [ marie ];
77     mainProgram = "pgrok";
78   };