about summary refs log tree commit diff
path: root/pkgs/applications/misc/1password
diff options
context:
space:
mode:
authorMalo Bourgon <mbourgon@gmail.com>2022-03-28 14:53:32 -0700
committerMalo Bourgon <mbourgon@gmail.com>2022-03-28 15:40:54 -0700
commit47417621a5a54a78944f959230a94e5f5ac1836c (patch)
tree39d394bf52f49314ecd600725fcdd8aeaa9e3270 /pkgs/applications/misc/1password
parent93eb4dbde177b5a0ede1c3174f5cb8a7c566906a (diff)
_1password: add shell completions
Diffstat (limited to 'pkgs/applications/misc/1password')
-rw-r--r--pkgs/applications/misc/1password/default.nix10
1 files changed, 7 insertions, 3 deletions
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 826b8558b3773..25685b2e125e9 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, autoPatchelfHook, fetchurl, xar, cpio }:
+{ lib, stdenv, fetchurl, fetchzip, autoPatchelfHook, installShellFiles, cpio, xar }:
 
 let
   inherit (stdenv.hostPlatform) system;
@@ -32,6 +32,8 @@ stdenv.mkDerivation {
     else
       throw "Source for ${pname} is not available for ${system}";
 
+  nativeBuildInputs = [ installShellFiles ] ++ lib.optional stdenv.isLinux autoPatchelfHook;
+
   buildInputs = lib.optionals stdenv.isDarwin [ xar cpio ];
 
   unpackPhase = lib.optionalString stdenv.isDarwin ''
@@ -41,11 +43,13 @@ stdenv.mkDerivation {
 
   installPhase = ''
     install -D ${mainProgram} $out/bin/${mainProgram}
+    runHook postInstall
   '';
 
-  dontStrip = stdenv.isDarwin;
+  postInstall = "installShellCompletion --cmd ${mainProgram}" + lib.concatMapStrings
+    (s: " --${s} <($out/bin/${mainProgram} completion ${s})") [ "bash" "fish" "zsh" ];
 
-  nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+  dontStrip = stdenv.isDarwin;
 
   doInstallCheck = true;