about summary refs log tree commit diff
path: root/pkgs/applications/version-management/commitizen/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/version-management/commitizen/default.nix')
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix15
1 files changed, 15 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index 1db75b0d2d4e..9c38e05320a9 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -3,6 +3,8 @@
 , fetchFromGitHub
 , git
 , python3
+, stdenv
+, installShellFiles
 , testers
 }:
 
@@ -25,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
     pythonRelaxDepsHook
+    installShellFiles
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -77,6 +80,18 @@ python3.pkgs.buildPythonApplication rec {
     "test_commitizen_debug_excepthook"
   ];
 
+  postInstall =
+    let
+      argcomplete = lib.getExe' python3.pkgs.argcomplete "register-python-argcomplete";
+    in
+    lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform)
+      ''
+        installShellCompletion --cmd cz \
+          --bash <(${argcomplete} --shell bash $out/bin/cz) \
+          --zsh <(${argcomplete} --shell zsh $out/bin/cz) \
+          --fish <(${argcomplete} --shell fish $out/bin/cz)
+      '';
+
   passthru = {
     tests.version = testers.testVersion {
       package = commitizen;