diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/security/rbw/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/security/rbw/default.nix | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/rbw/default.nix b/nixpkgs/pkgs/tools/security/rbw/default.nix new file mode 100644 index 000000000000..96616987510d --- /dev/null +++ b/nixpkgs/pkgs/tools/security/rbw/default.nix @@ -0,0 +1,83 @@ +{ lib +, stdenv +, rustPlatform +, fetchCrate +, openssl +, pkg-config +, makeWrapper +, installShellFiles +, Security +, libiconv + +# rbw-fzf +, withFzf ? false, fzf, perl + +# rbw-rofi +, withRofi ? false, rofi, xclip + +# pass-import +, withPass ? false, pass +}: + +rustPlatform.buildRustPackage rec { + pname = "rbw"; + version = "1.2.0"; + + src = fetchCrate { + inherit version; + crateName = pname; + sha256 = "14cnqc5cf6qm2g9ypv2pbqbvymawyrqn3fc778labgqg24khqcyq"; + }; + + cargoSha256 = "0izn5bcvk1rx69sjwyfc49nmvw7k0jysqb0bpdpwdliaa06ggl86"; + + nativeBuildInputs = [ + pkg-config + makeWrapper + installShellFiles + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ Security libiconv ]; + + postPatch = lib.optionalString withFzf '' + patchShebangs bin/rbw-fzf + substituteInPlace bin/rbw-fzf \ + --replace fzf ${fzf}/bin/fzf \ + --replace perl ${perl}/bin/perl + '' + lib.optionalString withRofi '' + patchShebangs bin/rbw-rofi + substituteInPlace bin/rbw-rofi \ + --replace rofi ${rofi}/bin/rofi \ + --replace xclip ${xclip}/bin/xclip + '' + lib.optionalString withRofi '' + patchShebangs bin/pass-import + substituteInPlace bin/pass-import \ + --replace pass ${pass}/bin/pass + ''; + + preConfigure = '' + export OPENSSL_INCLUDE_DIR="${openssl.dev}/include" + export OPENSSL_LIB_DIR="${openssl.out}/lib" + ''; + + postInstall = '' + for shell in bash zsh fish; do + $out/bin/rbw gen-completions $shell > rbw.$shell + installShellCompletion rbw.$shell + done + '' + lib.optionalString withFzf '' + cp bin/rbw-fzf $out/bin + '' + lib.optionalString withRofi '' + cp bin/rbw-rofi $out/bin + '' + lib.optionalString withPass '' + cp bin/pass-import $out/bin + ''; + + meta = with lib; { + description = "Unofficial command line client for Bitwarden"; + homepage = "https://crates.io/crates/rbw"; + changelog = "https://git.tozt.net/rbw/plain/CHANGELOG.md?id=${version}"; + license = licenses.mit; + maintainers = with maintainers; [ albakham luc65r marsam ]; + }; +} |