Merge pull request #205557 from ncfavier/concatLines

lib/strings: add `concatLines`

Changed files
+17 -1
lib
+1 -1
lib/default.nix
···
subtractLists mutuallyExclusive groupBy groupBy';
inherit (self.strings) concatStrings concatMapStrings concatImapStrings
intersperse concatStringsSep concatMapStringsSep
-
concatImapStringsSep makeSearchPath makeSearchPathOutput
+
concatImapStringsSep concatLines makeSearchPath makeSearchPathOutput
makeLibraryPath makeBinPath optionalString
hasInfix hasPrefix hasSuffix stringToCharacters stringAsChars escape
escapeShellArg escapeShellArgs
+11
lib/strings.nix
···
# List of input strings
list: concatStringsSep sep (lib.imap1 f list);
+
/* Concatenate a list of strings, adding a newline at the end of each one.
+
Defined as `concatMapStrings (s: s + "\n")`.
+
+
Type: concatLines :: [string] -> string
+
+
Example:
+
concatLines [ "foo" "bar" ]
+
=> "foo\nbar\n"
+
*/
+
concatLines = concatMapStrings (s: s + "\n");
+
/* Construct a Unix-style, colon-separated search path consisting of
the given `subDir` appended to each of the given paths.
+5
lib/tests/misc.nix
···
expected = "a,b,c";
};
+
testConcatLines = {
+
expr = concatLines ["a" "b" "c"];
+
expected = "a\nb\nc\n";
+
};
+
testSplitStringsSimple = {
expr = strings.splitString "." "a.b.c.d";
expected = [ "a" "b" "c" "d" ];