summaryrefslogtreecommitdiff
path: root/files
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2014-09-11 16:27:10 -0500
committerJames Cammarata <jimi@sngx.net>2014-09-11 16:27:48 -0500
commitab5e8201f487023dc6f02a43ae522d76300f8e86 (patch)
tree229e258c1e524bc1dc0b0b848a0d85047dce880a /files
parent732b6f0a2381b6b0810b9f01ff87918b31563fd2 (diff)
downloadansible-modules-extras-ab5e8201f487023dc6f02a43ae522d76300f8e86.tar.gz
Fix quoting issues in lineinfile for individual single-quotes
Fixes #8806
Diffstat (limited to 'files')
-rw-r--r--files/lineinfile9
1 files changed, 7 insertions, 2 deletions
diff --git a/files/lineinfile b/files/lineinfile
index ba842e15..12f8dc89 100644
--- a/files/lineinfile
+++ b/files/lineinfile
@@ -369,14 +369,19 @@ def main():
# so we need to know if we should specifically unquote it.
should_unquote = not is_quoted(line)
+ # always add one layer of quotes
+ line = "'%s'" % line
+
# Replace escape sequences like '\n' while being sure
# not to replace octal escape sequences (\ooo) since they
# match the backref syntax.
if backrefs:
line = re.sub(r'(\\[0-9]{1,3})', r'\\\1', line)
- line = module.safe_eval(pipes.quote(line))
+ line = module.safe_eval(line)
- # Now remove quotes around the string, if needed
+ # Now remove quotes around the string, if needed after
+ # removing the layer we added above
+ line = unquote(line)
if should_unquote:
line = unquote(line)