From 27d52fd9cc74ac0a8aac18e13d85563557479ea0 Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Thu, 6 Mar 2014 09:44:56 -0600 Subject: [PATCH] Un-escape newlines in delimiters for assemble module --- lib/ansible/runner/action_plugins/assemble.py | 6 ++++++ library/files/assemble | 2 ++ 2 files changed, 8 insertions(+) diff --git a/lib/ansible/runner/action_plugins/assemble.py b/lib/ansible/runner/action_plugins/assemble.py index eb6faf5dfcf..c73964cda68 100644 --- a/lib/ansible/runner/action_plugins/assemble.py +++ b/lib/ansible/runner/action_plugins/assemble.py @@ -39,7 +39,13 @@ class ActionModule(object): for f in sorted(os.listdir(src_path)): fragment = "%s/%s" % (src_path, f) if delimit_me and delimiter: + # en-escape things like new-lines + delimiter = delimiter.decode('unicode-escape') tmp.write(delimiter) + # always make sure there's a newline after the + # delimiter, so lines don't run together + if delimiter[-1] != '\n': + tmp.write('\n') if os.path.isfile(fragment): tmp.write(file(fragment).read()) delimit_me = True diff --git a/library/files/assemble b/library/files/assemble index a8c78256e23..f4a60caf230 100644 --- a/library/files/assemble +++ b/library/files/assemble @@ -107,6 +107,8 @@ def assemble_from_fragments(src_path, delimiter=None, compiled_regexp=None): continue fragment = "%s/%s" % (src_path, f) if delimit_me and delimiter: + # un-escape anything like newlines + delimiter = delimiter.decode('unicode-escape') tmp.write(delimiter) # always make sure there's a newline after the # delimiter, so lines don't run together