summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--krebs/3modules/default.nix6
-rw-r--r--lib/types.nix16
2 files changed, 21 insertions, 1 deletions
diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix
index b0ad2baf5..abb3d37eb 100644
--- a/krebs/3modules/default.nix
+++ b/krebs/3modules/default.nix
@@ -70,6 +70,12 @@ let
type = types.hostname;
default = "r";
};
+
+ sitemap = mkOption {
+ default = {};
+ type = types.attrsOf types.sitemap.entry;
+ };
+
zone-head-config = mkOption {
type = with types; attrsOf str;
description = ''
diff --git a/lib/types.nix b/lib/types.nix
index 236190ccd..8c6846887 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -5,7 +5,7 @@ let
all any concatMapStringsSep concatStringsSep const filter flip
genid hasSuffix head isInt isString length mergeOneOption mkOption
mkOptionType optional optionalAttrs optionals range splitString
- stringLength substring test typeOf;
+ stringLength substring test testString typeOf;
inherit (lib.types)
attrsOf bool either enum int listOf nullOr path str string submodule;
in
@@ -357,6 +357,20 @@ rec {
pgp-pubkey = str;
+ sitemap.entry = submodule ({ config, ... }: {
+ options = {
+ desc = mkOption {
+ default = null;
+ type = nullOr str;
+ };
+ href = mkOption {
+ ${if testString "https?://.*" config._module.args.name
+ then "default" else null} = config._module.args.name;
+ type = nullOr str; # TODO nullOr uri?
+ };
+ };
+ });
+
ssh-pubkey = str;
ssh-privkey = submodule {
options = {