{ realPkgs, ... }:

{
  programs.browserpass = {
    enable = true;
    browsers = [
      "brave"
      "chrome"
      "chromium"
      "firefox"
      "librewolf"
      "vivaldi"
    ];
  };

  nixpkgs.overlays = [ (_self: _super: { inherit (realPkgs) browserpass; }) ];

  nmt.script =
    if realPkgs.stdenv.hostPlatform.isDarwin then
      ''
        for dir in "BraveSoftware/Brave-Browser" "Google/Chrome" "Chromium" "Mozilla" "LibreWolf" "Vivaldi"; do
          assertFileExists "home-files/Library/Application Support/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
        done

        for dir in "Google/Chrome" "Chromium" "Vivaldi"; do
          assertFileExists "home-files/Library/Application Support/$dir/policies/managed/com.github.browserpass.native.json"
        done
      ''
    else
      ''
        for dir in "BraveSoftware/Brave-Browser" "google-chrome" "chromium" "vivaldi"; do
          assertFileExists "home-files/.config/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
        done

        for dir in "google-chrome" "chromium" "vivaldi"; do
          assertFileExists "home-files/.config/$dir/policies/managed/com.github.browserpass.native.json"
        done

        for dir in ".mozilla" ".librewolf"; do
          assertFileExists "home-files/$dir/native-messaging-hosts/com.github.browserpass.native.json"
        done
      '';
}
