summary refs log tree commit diff
path: root/pkgs/applications/networking/cluster/kubectl/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/cluster/kubectl/default.nix')
-rw-r--r--pkgs/applications/networking/cluster/kubectl/default.nix21
1 files changed, 9 insertions, 12 deletions
diff --git a/pkgs/applications/networking/cluster/kubectl/default.nix b/pkgs/applications/networking/cluster/kubectl/default.nix
index fed40523a9b..c550a0e2f2b 100644
--- a/pkgs/applications/networking/cluster/kubectl/default.nix
+++ b/pkgs/applications/networking/cluster/kubectl/default.nix
@@ -1,27 +1,24 @@
-{ stdenv, kubernetes }:
+{ stdenv, kubernetes, installShellFiles }:
 
 stdenv.mkDerivation {
   name = "kubectl-${kubernetes.version}";
 
   # kubectl is currently part of the main distribution but will eventially be
   # split out (see homepage)
-  src = kubernetes;
+  dontUnpack = true;
+
+  nativeBuildInputs = [ installShellFiles ];
 
   outputs = [ "out" "man" ];
 
   installPhase = ''
-    mkdir -p \
-      "$out/bin" \
-      "$out/share/bash-completion/completions" \
-      "$out/share/zsh/site-functions" \
-      "$man/share/man/man1"
-
-    cp bin/kubectl $out/bin/kubectl
+    install -D ${kubernetes}/bin/kubectl -t $out/bin
 
-    cp "${kubernetes.man}/share/man/man1"/kubectl* "$man/share/man/man1"
+    installManPage "${kubernetes.man}/share/man/man1"/kubectl*
 
-    $out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl
-    $out/bin/kubectl completion zsh > $out/share/zsh/site-functions/_kubectl
+    installShellCompletion --cmd kubectl \
+      --bash <($out/bin/kubectl completion bash) \
+      --zsh <($out/bin/kubectl completion zsh)
   '';
 
   meta = kubernetes.meta // {