summary refs log tree commit diff
path: root/pkgs/tools/admin/pulumi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/admin/pulumi/default.nix')
-rw-r--r--pkgs/tools/admin/pulumi/default.nix12
1 files changed, 8 insertions, 4 deletions
diff --git a/pkgs/tools/admin/pulumi/default.nix b/pkgs/tools/admin/pulumi/default.nix
index 02e1bb29c01b2..71c61d7a05434 100644
--- a/pkgs/tools/admin/pulumi/default.nix
+++ b/pkgs/tools/admin/pulumi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, autoPatchelfHook, makeWrapper }:
+{ lib, stdenv, fetchurl, autoPatchelfHook, makeWrapper, installShellFiles }:
 
 with lib;
 
@@ -15,13 +15,17 @@ in stdenv.mkDerivation {
   srcs = map (x: fetchurl x) data.pulumiPkgs.${stdenv.hostPlatform.system};
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp * $out/bin/
+    install -D -t $out/bin/ *
   '' + optionalString stdenv.isLinux ''
     wrapProgram $out/bin/pulumi --set LD_LIBRARY_PATH "${stdenv.cc.cc.lib}/lib"
+  '' + ''
+    installShellCompletion --cmd pulumi \
+      --bash <($out/bin/pulumi completion bash) \
+      --fish <($out/bin/pulumi completion fish) \
+      --zsh  <($out/bin/pulumi completion zsh)
   '';
 
-  nativeBuildInputs = optionals stdenv.isLinux [ autoPatchelfHook makeWrapper ];
+  nativeBuildInputs = [ installShellFiles ] ++ optionals stdenv.isLinux [ autoPatchelfHook makeWrapper ];
 
   meta = {
     homepage = "https://pulumi.io/";