diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/types.nix | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/types.nix b/lib/types.nix index 244cbb6b5354..cc3ac5fdf6fb 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -300,6 +300,19 @@ rec { inherit (str) merge; }; + # Allow a newline character at the end and trim it in the merge function. + singleLineStr = + let + inherit (strMatching "[^\n\r]*\n?") check merge; + in + mkOptionType { + name = "singleLineStr"; + description = "(optionally newline-terminated) single-line string"; + inherit check; + merge = loc: defs: + lib.removeSuffix "\n" (merge loc defs); + }; + strMatching = pattern: mkOptionType { name = "strMatching ${escapeNixString pattern}"; description = "string matching the pattern ${pattern}"; |