From 8ace1ab1b0847ba25e54a8c0c25abcd8feb8d613 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Sat, 11 Jan 2020 19:26:32 +0100 Subject: [PATCH] browserpass: use attribute set to define files To avoid warning message concerning deprecation of the `loaOf` type. --- modules/programs/browserpass.nix | 103 ++++++++++++++++--------------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/modules/programs/browserpass.nix b/modules/programs/browserpass.nix index 7af5e8f87..e65484fad 100644 --- a/modules/programs/browserpass.nix +++ b/modules/programs/browserpass.nix @@ -24,57 +24,58 @@ in { }; config = mkIf config.programs.browserpass.enable { - home.file = builtins.concatLists (with pkgs.stdenv; map (x: - if x == "chrome" then - let dir = if isDarwin - then "Library/Application Support/Google/Chrome/NativeMessagingHosts" - else ".config/google-chrome/NativeMessagingHosts"; - in [ - { - target = "${dir}/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json"; - } - { - target = "${dir}/../policies/managed/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json"; - } - ] - else if x == "chromium" then - let dir = if isDarwin - then "Library/Application Support/Chromium/NativeMessagingHosts" - else ".config/chromium/NativeMessagingHosts"; - in [ - { - target = "${dir}/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json"; - } - { - target = "${dir}/../policies/managed/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json"; - } - ] - else if x == "firefox" then - [ { - target = (if isDarwin + home.file = + foldl' (a: b: a // b) {} + (concatMap (x: with pkgs.stdenv; + if x == "chrome" then + let dir = if isDarwin + then "Library/Application Support/Google/Chrome/NativeMessagingHosts" + else ".config/google-chrome/NativeMessagingHosts"; + in [ + { + "${dir}/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json"; + "${dir}/../policies/managed/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json"; + } + ] + else if x == "chromium" then + let dir = if isDarwin + then "Library/Application Support/Chromium/NativeMessagingHosts" + else ".config/chromium/NativeMessagingHosts"; + in [ + { + "${dir}/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json"; + } + { + "${dir}/../policies/managed/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json"; + } + ] + else if x == "firefox" then + let dir = if isDarwin then "Library/Application Support/Mozilla/NativeMessagingHosts" - else ".mozilla/native-messaging-hosts") - + "/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/hosts/firefox/com.github.browserpass.native.json"; - } ] - else if x == "vivaldi" then - let dir = if isDarwin - then "Library/Application Support/Vivaldi/NativeMessagingHosts" - else ".config/vivaldi/NativeMessagingHosts"; - in [ - { - target = "${dir}/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json"; - } - { - target = "${dir}/../policies/managed/com.github.browserpass.native.json"; - source = "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json"; - } - ] - else throw "unknown browser ${x}") config.programs.browserpass.browsers); + else ".mozilla/native-messaging-hosts"; + in [ + { + "${dir}/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/hosts/firefox/com.github.browserpass.native.json"; + } + ] + else if x == "vivaldi" then + let dir = if isDarwin + then "Library/Application Support/Vivaldi/NativeMessagingHosts" + else ".config/vivaldi/NativeMessagingHosts"; + in [ + { + "${dir}/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/hosts/chromium/com.github.browserpass.native.json"; + "${dir}/../policies/managed/com.github.browserpass.native.json".source = + "${pkgs.browserpass}/lib/browserpass/policies/chromium/com.github.browserpass.native.json"; + } + ] + else throw "unknown browser ${x}") config.programs.browserpass.browsers + ); }; }