diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index f7608a57d71..75b96bbd414 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -71,6 +71,7 @@ ./programs/atop.nix ./programs/bash/bash.nix ./programs/blcr.nix + ./programs/browserpass.nix ./programs/cdemu.nix ./programs/chromium.nix ./programs/command-not-found/command-not-found.nix diff --git a/nixos/modules/programs/browserpass.nix b/nixos/modules/programs/browserpass.nix new file mode 100644 index 00000000000..f550334c84c --- /dev/null +++ b/nixos/modules/programs/browserpass.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: + +with lib; + +{ + + ###### interface + options = { + programs.browserpass = { + enable = mkOption { + default = false; + type = types.bool; + description = '' + Wheter to install the NativeMessaging configuration for installed browsers. + ''; + }; + }; + }; + + ###### implementation + config = mkIf config.programs.browserpass.enable { + environment.systemPackages = [ pkgs.browserpass ]; + environment.etc."chromium/native-messaging-hosts/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/etc/chrome-host.json"; + environment.etc."opt/chrome/native-messaging-hosts/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/etc/chrome-host.json"; + }; +} diff --git a/pkgs/tools/security/browserpass/default.nix b/pkgs/tools/security/browserpass/default.nix new file mode 100644 index 00000000000..dee0522115c --- /dev/null +++ b/pkgs/tools/security/browserpass/default.nix @@ -0,0 +1,35 @@ +{ stdenv, lib, fetchzip }: +let + userDir = "~/.config/chromium"; +in + stdenv.mkDerivation rec { + name = "browserpass-${version}"; + + version = "1.0.2"; + + src = fetchzip { + url = "https://github.com/dannyvankooten/browserpass/releases/download/${version}/browserpass-linux64.zip"; + sha256 = "1fj2siczm472xd1n5i5k08cw94q5gpisfqmvrhhwq7zdjvpcrh8y"; + stripRoot = false; + }; + + dontBuild = true; + + installPhase = '' + install -D browserpass-linux64 "$out/bin/browserpass" + + host_file="$out/bin/browserpass" + sed -i -e "s!%%replace%%!$host_file!" chrome-host.json + sed -i -e "s!%%replace%%!$host_file!" firefox-host.json + + install -D chrome-host.json "$out/etc/chrome-host.json" + install -D firefox-host.json "$out/etc/firefox-host.json" + + ''; + + + meta = with lib; { + maintainers = with maintainers; [ cstrahan ]; + platforms = ["x86_64-linux"]; + }; + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 45562df3170..8d95c61c7c6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -543,6 +543,8 @@ with pkgs; pass = callPackage ../tools/security/pass { }; + browserpass = callPackage ../tools/security/browserpass { }; + oracle-instantclient = callPackage ../development/libraries/oracle-instantclient { }; kwakd = callPackage ../servers/kwakd { };