aboutsummaryrefslogtreecommitdiff
path: root/lib/strings.nix
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2016-06-19 23:27:52 +0100
committerGitHub <noreply@github.com>2016-06-19 23:27:52 +0100
commitb0f8416c5c0e5345897832ae0cce139ed85c7fdb (patch)
treec34d9ef7febb4c1a6df6f179130506219e5e2d81 /lib/strings.nix
parent53f421c0c4b4916426c369bfb996422209e6ebf7 (diff)
parent28fa4a2f03e2232d95dec9dc2b8ef40857d725db (diff)
Merge pull request #16180 from zimbatm/shell-escaping
Escape all shell arguments uniformly
Diffstat (limited to 'lib/strings.nix')
-rw-r--r--lib/strings.nix11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/strings.nix b/lib/strings.nix
index 7109bd4ec6e1..04376a5f2fbe 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -209,7 +209,16 @@ rec {
escapeShellArg "so([<>])me"
=> "so\\(\\[\\<\\>\\]\\)me"
*/
- escapeShellArg = lib.escape (stringToCharacters "\\ ';$`()|<>\t*[]");
+ escapeShellArg = arg:
+ lib.escape (stringToCharacters "\\ ';$`()|<>\t*[]") (toString arg);
+
+ /* Escape all arguments to be passed to the Bourne shell.
+
+ Example:
+ escapeShellArgs ["one" "two three"]
+ => "one two\\ three"
+ */
+ escapeShellArgs = concatMapStringsSep " " escapeShellArg;
/* Obsolete - use replaceStrings instead. */
replaceChars = builtins.replaceStrings or (