Implemented file content diff for replace module (#4479)

This commit is contained in:
Evan Kaufman 2016-08-30 02:56:35 -07:00 committed by Matt Clay
parent c1dae481e8
commit 254df9bcca

View file

@ -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 *