diff --git a/lib/ansible/modules/files/replace.py b/lib/ansible/modules/files/replace.py index 651503fd7b1..7d26163c582 100644 --- a/lib/ansible/modules/files/replace.py +++ b/lib/ansible/modules/files/replace.py @@ -141,15 +141,25 @@ def main(): contents = f.read() f.close() + if module._diff: + diff = { + 'before_header': dest, + 'before': contents, + } + mre = re.compile(params['regexp'], re.MULTILINE) result = re.subn(mre, params['replace'], contents, 0) if result[1] > 0 and contents != result[0]: msg = '%s replacements made' % result[1] changed = True + if module._diff: + diff['after_header'] = dest + diff['after'] = result[0] else: msg = '' changed = False + diff = dict() if changed and not module.check_mode: if params['backup'] and os.path.exists(dest): @@ -159,7 +169,7 @@ def main(): write_changes(module, result[0], dest) msg, changed = check_file_attrs(module, changed, msg) - module.exit_json(changed=changed, msg=msg) + module.exit_json(changed=changed, msg=msg, diff=diff) # this is magic, see lib/ansible/module_common.py from ansible.module_utils.basic import *