about summary refs log tree commit diff
path: root/pkgs/tools/misc/starship
diff options
context:
space:
mode:
authorMario Rodas <marsam@users.noreply.github.com>2020-06-26 04:20:00 -0500
committerMario Rodas <marsam@users.noreply.github.com>2020-06-26 04:20:00 -0500
commite9ee34c806d085109672f42cdd60ea9635af1028 (patch)
tree10eb23808d1c1b32e7d9b12bb8f52df2660ab856 /pkgs/tools/misc/starship
parentf253fc13eccf42e689e6ec4e5dd846f3e1d97430 (diff)
starship: install completions
Diffstat (limited to 'pkgs/tools/misc/starship')
-rw-r--r--pkgs/tools/misc/starship/default.nix11
1 files changed, 9 insertions, 2 deletions
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 3fec20f95bb6d..5352b13675f01 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, installShellFiles
 , libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
@@ -12,7 +12,7 @@ rustPlatform.buildRustPackage rec {
     sha256 = "17wc9f07308a97dsmrkq74w2r639sqms0hwh8gavwxycj7wq7xz2";
   };
 
-  nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+  nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
@@ -22,6 +22,13 @@ rustPlatform.buildRustPackage rec {
       --replace "/bin/echo" "echo"
   '';
 
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/starship completions $shell > starship.$shell
+      installShellCompletion starship.$shell
+    done
+  '';
+
   cargoSha256 = "1nvs68qxygi2l43vxw890r40px35dvzbcg6qmrm09g60ykd8pjv2";
   checkPhase = "cargo test -- --skip directory::home_directory --skip directory::directory_in_root";