Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / pg / pgrok / package.nix
blob0aed3b49f80756c6aebe1409ac73fcb49d9513d9
1 { lib
2 , buildGoModule
3 , fetchFromGitHub
4 , nix-update-script
5 , nodejs
6 , pnpm
7 }:
9 let
10   pname = "pgrok";
11   version = "1.4.1";
12   src = fetchFromGitHub {
13     owner = "pgrok";
14     repo = "pgrok";
15     rev = "v${version}";
16     hash = "sha256-P36rpFi5J+dF6FrVaPhqupG00h4kwr0qumt4ehL/7vU=";
17   };
20 buildGoModule {
21   inherit pname version src;
23   outputs = [ "out" "server" ];
25   nativeBuildInputs = [
26     nodejs
27     pnpm.configHook
28   ];
30   pnpmDeps = pnpm.fetchDeps {
31     inherit pname version src;
32     hash = "sha256-1PUcISW1pC9+5HZyI9SIDRyhos5f/6aW1wa2z0OKams=";
33   };
35   vendorHash = "sha256-X5FjzliIJdfJnNaUXBjv1uq5tyjMVjBbnLCBH/P0LFM=";
37   ldflags = [
38     "-s"
39     "-w"
40     "-X main.version=${version}"
41     "-X main.commit=unknown"
42     "-X main.date=unknown"
43   ];
45   subPackages = [
46     "pgrok/pgrok"
47     "pgrokd/pgrokd"
48   ];
50   preBuild = ''
51     pushd pgrokd/web
53     pnpm run build
55     popd
57     # rename packages due to naming conflict
58     mv pgrok/cli/ pgrok/pgrok/
59     mv pgrokd/cli/ pgrokd/pgrokd/
60   '';
62   postInstall = ''
63     moveToOutput bin/pgrokd $server
64   '';
66   passthru.updateScript = nix-update-script { };
68   meta = {
69     description = "Selfhosted TCP/HTTP tunnel, ngrok alternative, written in Go";
70     homepage = "https://github.com/pgrok/pgrok";
71     license = lib.licenses.mit;
72     maintainers = with lib.maintainers; [ marie ];
73     mainProgram = "pgrok";
74   };