TL; DR: my simple Python code to output a result of text comparison in git-diff style

Here’s the code snippet in Python.
from difflib import Differ
from termcolor import colored
def color_print(buffer, line):
# skip if the line isn't changed
if line.startswith(' '):
return
# otherwise render deleted line in red and new line in green
if line.startswith('-'):
color = 'red'
elif line.startswith('+'):
color = 'green'
else:
color = 'white'
buffer.append(colored(line, color))
def show_diff(live, revision, domain, rule):
d = Differ()
results = []
# split origin text into a list of strings, then use Differ().compare()
for line in d.compare(live.splitlines(keepends=True), revision.splitlines(keepends=True)):
color_print(results, line)
print(f'Processing {domain}/{rule}...')
sys.stdout.writelines(results)
print()🙂
