diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/security/gopass/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/security/gopass/default.nix | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix new file mode 100644 index 000000000000..50dfe3b8ce63 --- /dev/null +++ b/nixpkgs/pkgs/tools/security/gopass/default.nix @@ -0,0 +1,75 @@ +{ lib +, stdenv +, makeWrapper +, buildGoModule +, fetchFromGitHub +, installShellFiles +, git +, gnupg +, xclip +, wl-clipboard +, passAlias ? false +}: + +buildGoModule rec { + pname = "gopass"; + version = "1.13.1"; + + nativeBuildInputs = [ installShellFiles makeWrapper ]; + + src = fetchFromGitHub { + owner = "gopasspw"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-g/ICT489uW3a5EnsxJPYOnV+yeOFfaFPMowdIK0M1Fc="; + }; + + vendorSha256 = "sha256-HGc6jUp4WO5P5dwfa0r7+X78a8us9fWrf+/IOotZHqk="; + + subPackages = [ "." ]; + + doCheck = false; + + ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}" ]; + + wrapperPath = lib.makeBinPath ( + [ + git + gnupg + xclip + ] ++ lib.optional stdenv.isLinux wl-clipboard + ); + + postInstall = '' + installManPage gopass.1 + installShellCompletion --zsh --name _gopass zsh.completion + installShellCompletion --bash --name gopass.bash bash.completion + installShellCompletion --fish --name gopass.fish fish.completion + '' + lib.optionalString passAlias '' + ln -s $out/bin/gopass $out/bin/pass + ''; + + postFixup = '' + wrapProgram $out/bin/gopass \ + --prefix PATH : "${wrapperPath}" \ + --set GOPASS_NO_REMINDER true + ''; + + meta = with lib; { + description = "The slightly more awesome Standard Unix Password Manager for Teams. Written in Go"; + homepage = "https://www.gopass.pw/"; + license = licenses.mit; + maintainers = with maintainers; [ rvolosatovs ]; + changelog = "https://github.com/gopasspw/gopass/raw/v${version}/CHANGELOG.md"; + + longDescription = '' + gopass is a rewrite of the pass password manager in Go with the aim of + making it cross-platform and adding additional features. Our target + audience are professional developers and sysadmins (and especially teams + of those) who are well versed with a command line interface. One explicit + goal for this project is to make it more approachable to non-technical + users. We go by the UNIX philosophy and try to do one thing and do it + well, providing a stellar user experience and a sane, simple interface. + ''; + }; +} |