types.singleLineStr: Allow and trim trailing \n
Allow a \n character at the end of the string and remove it during the merge function. An option of this type will resolve to the value "foo" whether it is set to "foo" or "foo\n". This is useful when using 'builtins.readFile' or ''-strings, which might add an unintended newline (for example, bash trim the final newline from a subshell).
This commit is contained in:
parent
f25a13212b
commit
4baf8548fb
@ -300,10 +300,17 @@ rec {
|
||||
inherit (str) merge;
|
||||
};
|
||||
|
||||
singleLineStr = mkOptionType {
|
||||
# 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 = "string that doesn't contain [\\n\\r]";
|
||||
inherit (strMatching "[^\n\r]*") check merge;
|
||||
inherit check;
|
||||
merge = loc: defs:
|
||||
lib.removeSuffix "\n" (merge loc defs);
|
||||
};
|
||||
|
||||
strMatching = pattern: mkOptionType {
|
||||
|
Loading…
Reference in New Issue
Block a user