biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / version-management / gh / default.nix
blob746c8d40a3930437b66d55bffc21831923b4b43a
2   lib,
3   fetchFromGitHub,
4   buildGoModule,
5   installShellFiles,
6   stdenv,
7   testers,
8   gh,
9 }:
11 buildGoModule rec {
12   pname = "gh";
13   version = "2.59.0";
15   src = fetchFromGitHub {
16     owner = "cli";
17     repo = "cli";
18     rev = "refs/tags/v${version}";
19     hash = "sha256-QOc99KmcGk9b9uy1/y1FSe0zYE1q0g06k7niqtsMDmY=";
20   };
22   vendorHash = "sha256-Mje0IbvRj6pmOe8s8PX87ntPE+ZZeciLyOP6fmv7PmI=";
24   nativeBuildInputs = [ installShellFiles ];
26   buildPhase = ''
27     runHook preBuild
28     make GO_LDFLAGS="-s -w" GH_VERSION=${version} bin/gh ${lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) "manpages"}
29     runHook postBuild
30   '';
32   installPhase =
33     ''
34       runHook preInstall
35       install -Dm755 bin/gh -t $out/bin
36     ''
37     + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
38       installManPage share/man/*/*.[1-9]
40       installShellCompletion --cmd gh \
41         --bash <($out/bin/gh completion -s bash) \
42         --fish <($out/bin/gh completion -s fish) \
43         --zsh <($out/bin/gh completion -s zsh)
44     ''
45     + ''
46       runHook postInstall
47     '';
49   # most tests require network access
50   doCheck = false;
52   passthru.tests.version = testers.testVersion {
53     package = gh;
54   };
56   meta = with lib; {
57     description = "GitHub CLI tool";
58     homepage = "https://cli.github.com/";
59     changelog = "https://github.com/cli/cli/releases/tag/v${version}";
60     license = licenses.mit;
61     mainProgram = "gh";
62     maintainers = with maintainers; [ zowoq ];
63   };