base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / security / gopass / default.nix
blob68b794214f6ee01fe53c6d3505eaa72eeff83fc1
1 { lib
2 , stdenv
3 , makeWrapper
4 , buildGoModule
5 , fetchFromGitHub
6 , installShellFiles
7 , git
8 , gnupg
9 , xclip
10 , wl-clipboard
11 , passAlias ? false
14 buildGoModule rec {
15   pname = "gopass";
16   version = "1.15.14";
18   nativeBuildInputs = [ installShellFiles makeWrapper ];
20   src = fetchFromGitHub {
21     owner = "gopasspw";
22     repo = "gopass";
23     rev = "v${version}";
24     hash = "sha256-3oXdHjW3svGfOEoikEeGm4oU9j+7IBOHw5KH7CCV/uw=";
25   };
27   vendorHash = "sha256-GeppWyIWE8kYIqhRf1iHksWksdjbIzy96rRpx+qQ3L0=";
29   subPackages = [ "." ];
31   ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" ];
33   wrapperPath = lib.makeBinPath (
34     [
35       git
36       gnupg
37       xclip
38     ] ++ lib.optional stdenv.hostPlatform.isLinux wl-clipboard
39   );
41   postInstall = ''
42     installManPage gopass.1
43     installShellCompletion --cmd gopass \
44       --zsh zsh.completion \
45       --bash bash.completion \
46       --fish fish.completion
47   '' + lib.optionalString passAlias ''
48     ln -s $out/bin/gopass $out/bin/pass
49   '';
51   postFixup = ''
52     wrapProgram $out/bin/gopass \
53       --prefix PATH : "${wrapperPath}" \
54       --set GOPASS_NO_REMINDER true
55   '';
56   passthru = {
57     inherit wrapperPath;
58   };
60   meta = with lib; {
61     description = "Slightly more awesome Standard Unix Password Manager for Teams. Written in Go";
62     homepage = "https://www.gopass.pw/";
63     license = licenses.mit;
64     maintainers = with maintainers; [ rvolosatovs sikmir ];
65     changelog = "https://github.com/gopasspw/gopass/blob/v${version}/CHANGELOG.md";
67     longDescription = ''
68       gopass is a rewrite of the pass password manager in Go with the aim of
69       making it cross-platform and adding additional features. Our target
70       audience are professional developers and sysadmins (and especially teams
71       of those) who are well versed with a command line interface. One explicit
72       goal for this project is to make it more approachable to non-technical
73       users. We go by the UNIX philosophy and try to do one thing and do it
74       well, providing a stellar user experience and a sane, simple interface.
75     '';
76     mainProgram = "gopass";
77   };