{ config, lib, pkgs, ... }:

with lib;

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

    nmt.script = if pkgs.stdenv.hostPlatform.isDarwin then ''
      for dir in "Google/Chrome" "Chromium" "Mozilla" "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 "google-chrome" "chromium" "vivaldi"; do
        assertFileExists "home-files/.config/$dir/NativeMessagingHosts/com.github.browserpass.native.json"
        assertFileExists "home-files/.config/$dir/policies/managed/com.github.browserpass.native.json"
      done

      assertFileExists "home-files/.mozilla/native-messaging-hosts/com.github.browserpass.native.json"
    '';
  };
}