aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/home-manager/modules/programs/gpg.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/home-manager/modules/programs/gpg.nix')
-rw-r--r--infra/libkookie/home-manager/modules/programs/gpg.nix35
1 files changed, 20 insertions, 15 deletions
diff --git a/infra/libkookie/home-manager/modules/programs/gpg.nix b/infra/libkookie/home-manager/modules/programs/gpg.nix
index 4588c59c8829..1c77d871e532 100644
--- a/infra/libkookie/home-manager/modules/programs/gpg.nix
+++ b/infra/libkookie/home-manager/modules/programs/gpg.nix
@@ -5,25 +5,30 @@ with lib;
let
cfg = config.programs.gpg;
- cfgText =
- concatStringsSep "\n"
- (attrValues
- (mapAttrs (key: value:
- if isString value
- then "${key} ${value}"
- else optionalString value key)
- cfg.settings));
-
-in {
+ mkKeyValue = key: value:
+ if isString value
+ then "${key} ${value}"
+ else optionalString value key;
+
+ cfgText = generators.toKeyValue {
+ inherit mkKeyValue;
+ listsAsDuplicateKeys = true;
+ } cfg.settings;
+
+ primitiveType = types.oneOf [ types.str types.bool ];
+in
+{
options.programs.gpg = {
enable = mkEnableOption "GnuPG";
settings = mkOption {
- type = types.attrsOf (types.either types.str types.bool);
- example = {
- no-comments = false;
- s2k-cipher-algo = "AES128";
- };
+ type = types.attrsOf (types.either primitiveType (types.listOf types.str));
+ example = literalExample ''
+ {
+ no-comments = false;
+ s2k-cipher-algo = "AES128";
+ }
+ '';
description = ''
GnuPG configuration options. Available options are described
in the gpg manpage: