diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/security/pass/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/tools/security/pass/default.nix | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/security/pass/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/security/pass/default.nix index 76b90d5b8858..354437a9bd56 100644 --- a/infra/libkookie/nixpkgs/pkgs/tools/security/pass/default.nix +++ b/infra/libkookie/nixpkgs/pkgs/tools/security/pass/default.nix @@ -1,9 +1,9 @@ { stdenv, lib, pkgs, fetchurl, buildEnv -, coreutils, gnused, getopt, git, tree, gnupg, openssl, which, procps -, qrencode , makeWrapper, pass, symlinkJoin +, coreutils, findutils, gnugrep, gnused, getopt, git, tree, gnupg, openssl +, which, procps , qrencode , makeWrapper, pass, symlinkJoin , xclip ? null, xdotool ? null, dmenu ? null -, x11Support ? !stdenv.isDarwin +, x11Support ? !stdenv.isDarwin , dmenuSupport ? x11Support , waylandSupport ? false, wl-clipboard ? null # For backwards-compatibility @@ -12,9 +12,11 @@ with lib; -assert x11Support -> xclip != null - && xdotool != null - && dmenu != null; +assert x11Support -> xclip != null; + +assert dmenuSupport -> dmenu != null + && xdotool != null + && x11Support; assert waylandSupport -> wl-clipboard != null; @@ -32,11 +34,15 @@ let postBuild = '' files=$(find $out/bin/ -type f -exec readlink -f {} \;) - rm $out/bin - mkdir $out/bin + if [ -L $out/bin ]; then + rm $out/bin + mkdir $out/bin + fi for i in $files; do - ln -sf $i $out/bin/$(basename $i) + if ! [ "$(readlink -f "$out/bin/$(basename $i)")" = "$i" ]; then + ln -sf $i $out/bin/$(basename $i) + fi done wrapProgram $out/bin/pass \ @@ -72,14 +78,16 @@ stdenv.mkDerivation rec { # himself. mkdir -p "$out/share/emacs/site-lisp" cp "contrib/emacs/password-store.el" "$out/share/emacs/site-lisp/" - '' + optionalString x11Support '' + '' + optionalString dmenuSupport '' cp "contrib/dmenu/passmenu" "$out/bin/" ''; wrapperPath = with stdenv.lib; makeBinPath ([ coreutils + findutils getopt git + gnugrep gnupg gnused tree @@ -87,7 +95,8 @@ stdenv.mkDerivation rec { qrencode procps ] ++ optional stdenv.isDarwin openssl - ++ ifEnable x11Support [ dmenu xclip xdotool ] + ++ optional x11Support xclip + ++ optionals dmenuSupport [ xdotool dmenu ] ++ optional waylandSupport wl-clipboard); postFixup = '' @@ -98,7 +107,7 @@ stdenv.mkDerivation rec { # Ensure all dependencies are in PATH wrapProgram $out/bin/pass \ --prefix PATH : "${wrapperPath}" - '' + stdenv.lib.optionalString x11Support '' + '' + stdenv.lib.optionalString dmenuSupport '' # We just wrap passmenu with the same PATH as pass. It doesn't # need all the tools in there but it doesn't hurt either. wrapProgram $out/bin/passmenu \ |