about summary refs log tree commit diff
path: root/pkgs/by-name/gi
diff options
context:
space:
mode:
authorRebecca Turner <rbt@sent.as>2024-04-03 15:16:24 -0700
committerRebecca Turner <rbt@sent.as>2024-04-03 18:04:38 -0700
commit1f0dcbf5fb553006a15da15c8d489b5ef66a2245 (patch)
tree7b5f4ae67eba009eaee073cf454e1d367565c45f /pkgs/by-name/gi
parent85bd601b67ca59f71ecd96a24ecf22f9bb68e070 (diff)
git-gr: init at 1.0.3
Diffstat (limited to 'pkgs/by-name/gi')
-rw-r--r--pkgs/by-name/gi/git-gr/package.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/pkgs/by-name/gi/git-gr/package.nix b/pkgs/by-name/gi/git-gr/package.nix
new file mode 100644
index 0000000000000..4bb7e82d2002e
--- /dev/null
+++ b/pkgs/by-name/gi/git-gr/package.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  stdenv,
+  buildPackages,
+  fetchFromGitHub,
+  rustPlatform,
+  installShellFiles,
+  libiconv,
+  darwin,
+  nix-update-script,
+}:
+let
+  canRunGitGr = stdenv.hostPlatform.emulatorAvailable buildPackages;
+  gitGr = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/git-gr";
+  pname = "git-gr";
+  version = "1.0.3";
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "9999years";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hvK4reFR60q9mw3EdNLav9VMr4H6Zabv1N1D/5AAKuQ=";
+  };
+
+  buildFeatures = [ "clap_mangen" ];
+
+  cargoHash = "sha256-efoRiPWugz955MflIS81Nie7Oq5Y4u5CI+/el8fJVl0=";
+
+  nativeBuildInputs =
+    [ installShellFiles ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.CoreServices
+    ];
+
+  postInstall = lib.optionalString canRunGitGr ''
+    manpages=$(mktemp -d)
+    ${gitGr} manpages "$manpages"
+    for manpage in "$manpages"/*; do
+      installManPage "$manpage"
+    done
+
+    installShellCompletion --cmd git-gr \
+      --bash <(${gitGr} completions bash) \
+      --fish <(${gitGr} completions fish) \
+      --zsh <(${gitGr} completions zsh)
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/9999years/git-gr";
+    description = "A Gerrit CLI client";
+    license = [ licenses.mit ];
+    maintainers = [ maintainers._9999years ];
+    mainProgram = "git-gr";
+  };
+
+  passthru.updateScript = nix-update-script { };
+}