diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2016-10-05 21:11:40 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2016-10-05 21:14:45 +0300 |
commit | 885edd78d67656f6f3aee02e6457d9290075638e (patch) | |
tree | 8e04e41b76088fcf3f15c8fd9672b267d500befc /modules/apps/postgresql | |
parent | 643e4576e293f48d1b69eb705df0eede223c3655 (diff) | |
download | nixsap-885edd78d67656f6f3aee02e6457d9290075638e.tar.gz |
postgresql: refactor keyrings code
Several instances can run as the same user.
Diffstat (limited to 'modules/apps/postgresql')
-rw-r--r-- | modules/apps/postgresql/default.nix | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/modules/apps/postgresql/default.nix b/modules/apps/postgresql/default.nix index 847fc75..bfbf4bd 100644 --- a/modules/apps/postgresql/default.nix +++ b/modules/apps/postgresql/default.nix @@ -5,9 +5,9 @@ let match toString ; inherit (lib) - concatMapStrings concatStringsSep filter filterAttrs foldl hasPrefix - isBool isInt isList isString length mapAttrs' mapAttrsToList mkDefault - mkIf mkOption nameValuePair types ; + concatMapStrings concatStringsSep filter filterAttrs foldAttrs foldl + hasPrefix isBool isInt isList isString length mapAttrs' mapAttrsToList + mkDefault mkIf mkOption nameValuePair types ; inherit (types) attrsOf lines listOf nullOr package path str submodule ; @@ -19,10 +19,13 @@ let users = mapAttrsToList (_: v: v.user) instances; isFloat = x: match "^[0-9]+(\\.[0-9]+)?$" (toString x) != null; - isKey = s: s != null && hasPrefix "/run/keys/" s; - keyrings = mapAttrs' (_: i: nameValuePair "${i.user}" [ i.server.ssl_key_file ] - ) (filterAttrs (_: i: isKey i.server.ssl_key_file) instances); + keyrings = + let + isKey = s: s != null && hasPrefix "/run/keys/" s; + keys = i: filter isKey [ i.server.ssl_key_file ]; + ik = mapAttrsToList (_: i: { "${i.user}" = keys i; } ) instances; + in foldAttrs (l: r: l ++ r) [] ik; mkService = name: opts: let |