about summary refs log tree commit diff
path: root/pkgs/tools/admin/oci-cli
diff options
context:
space:
mode:
authorMaxime Brunet <max@brnt.mx>2024-02-29 15:43:00 -0800
committerMaxime Brunet <max@brnt.mx>2024-03-23 19:03:05 -0700
commite33b7e1bad11049a75141be8971b2dcd6800393b (patch)
tree42daf582892774b3165111d8ca371989b18cb09f /pkgs/tools/admin/oci-cli
parentdd5b898b7e9ac9494d46d502531255a7fbaeeec7 (diff)
oci-cli: install shell completion
Diffstat (limited to 'pkgs/tools/admin/oci-cli')
-rw-r--r--pkgs/tools/admin/oci-cli/default.nix21
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/tools/admin/oci-cli/default.nix b/pkgs/tools/admin/oci-cli/default.nix
index 1d09e02b6ba68..a84c62ca63302 100644
--- a/pkgs/tools/admin/oci-cli/default.nix
+++ b/pkgs/tools/admin/oci-cli/default.nix
@@ -2,6 +2,7 @@
 , fetchFromGitHub
 , fetchPypi
 , python3
+, installShellFiles
 }:
 
 let
@@ -46,6 +47,8 @@ buildPythonApplication rec {
     hash = "sha256-yooEZuSIw2EMJVyT/Z/x4hJi8a1F674CtsMMGkMAYLg=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   propagatedBuildInputs = [
     arrow
     certifi
@@ -73,6 +76,24 @@ buildPythonApplication rec {
       --replace "oci==2.78.0" "oci"
   '';
 
+  postInstall = ''
+    cat >oci.zsh <<EOF
+    #compdef oci
+    zmodload -i zsh/parameter
+    autoload -U +X bashcompinit && bashcompinit
+    if ! (( $+functions[compdef] )) ; then
+        autoload -U +X compinit && compinit
+    fi
+
+    EOF
+    cat src/oci_cli/bin/oci_autocomplete.sh >>oci.zsh
+
+    installShellCompletion \
+      --cmd oci \
+      --bash src/oci_cli/bin/oci_autocomplete.sh \
+      --zsh oci.zsh
+  '';
+
   # https://github.com/oracle/oci-cli/issues/187
   doCheck = false;