diff options
Diffstat (limited to 'krebs/4lib')
-rw-r--r-- | krebs/4lib/default.nix | 2 | ||||
-rw-r--r-- | krebs/4lib/types.nix | 13 |
2 files changed, 10 insertions, 5 deletions
diff --git a/krebs/4lib/default.nix b/krebs/4lib/default.nix index 585bd313f..bfe8c581c 100644 --- a/krebs/4lib/default.nix +++ b/krebs/4lib/default.nix @@ -41,8 +41,6 @@ let out = rec { mapAttrs (name: _: path + "/${name}") (filterAttrs (_: eq "directory") (readDir path)); - getAttrDef = name: set: set.${name} or set.default or null; - mapAttrValues = f: mapAttrs (_: f); setAttr = name: value: set: set // { ${name} = value; }; optionalTrace = c: msg: x: if c then trace msg x else x; diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix index 66191d0b3..f65d5b68e 100644 --- a/krebs/4lib/types.nix +++ b/krebs/4lib/types.nix @@ -154,6 +154,12 @@ types // rec { merge = mergeOneOption; }; + uint = mkOptionType { + name = "unsigned integer"; + check = x: isInt x && x >= 0; + merge = mergeOneOption; + }; + secret-file = submodule ({ config, ... }: { options = { path = mkOption { type = str; }; @@ -199,8 +205,9 @@ types // rec { description = '' Set of user's PGP public keys. - Modules supporting PGP may use well-known key names to define option - defaults, e.g. using `getAttrDef well-known-name pubkeys`. + Modules supporting PGP may use well-known key names to define + default values for options, in which case the well-known name + should be documented in the respective option's description. ''; }; pubkey = mkOption { @@ -330,7 +337,7 @@ types // rec { # TODO two slashes absolute-pathname = mkOptionType { name = "POSIX absolute pathname"; - check = s: pathname.check s && substring 0 1 s == "/"; + check = s: s == "/" || (pathname.check s && substring 0 1 s == "/"); }; # POSIX.1‐2013, 3.267 Pathname |