Handle the key 'prepared' in the 'diff' result from modules

So far, when a 'diff' dict is returned with module results, it is
checked for 'before' and 'after' texts, which are processed in
_get_diff() by python difflib.  This generates the changes to display
when CLI users specify --diff.

However, some modules will generate changes that cannot easily be
expressed in a conventional diff. One example is the output of the
synchronize module, which presents changed files in a common log format
as in `rsync --itemize-changes`.

Add a check for a diff['prepared'] key, which can contain prepared diff text
from modules.
pull/14214/head
Tobias Wolf 10 years ago committed by James Cammarata
parent 5fe16bef6f
commit 0fddd90f14

@ -120,6 +120,8 @@ class CallbackBase:
differ = difflib.unified_diff(to_unicode(diff['before']).splitlines(True), to_unicode(diff['after']).splitlines(True), before_header, after_header, '', '', 10)
ret.extend(list(differ))
ret.append('\n')
if 'prepared' in diff:
ret.append(to_unicode(diff['prepared']))
return u"".join(ret)
except UnicodeDecodeError:
ret.append(">> the files are different, but the diff library cannot compare unicode strings\n\n")

Loading…
Cancel
Save