Merge pull request #155522 from Julow/single_line_str

types.singleLineStr: strings that don't contain '\n'
This commit is contained in:
Robert Hensing 2022-01-21 17:39:13 +01:00 committed by GitHub
commit c4a5efa965
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -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}";

View File

@ -30,7 +30,7 @@ let
options.openssh.authorizedKeys = {
keys = mkOption {
type = types.listOf types.str;
type = types.listOf types.singleLineStr;
default = [];
description = ''
A list of verbatim OpenSSH public keys that should be added to the