memgraph/tools/git-clang-format
antonio2368 435af8b833
Remove clang tidy from hooks (#94)
* Removed clang-tidy from hooks

* Improved clang-format output

* Remove lcp from types to format
2021-02-16 11:22:59 +01:00

48 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
import re
import sys
import subprocess
import difflib
def colorize(diff_lines):
def bold(s):
return '\x1b[1m' + s + '\x1b[0m'
def cyan(s):
return '\x1b[36m' + s + '\x1b[0m'
def green(s):
return '\x1b[32m' + s + '\x1b[0m'
def red(s):
return '\x1b[31m' + s + '\x1b[0m'
for line in diff_lines:
if line[:4] in ['--- ', '+++ ']:
yield bold(line)
elif line.startswith('@@ '):
yield cyan(line)
elif line.startswith('+'):
yield green(line)
elif line.startswith('-'):
yield red(line)
else:
yield line
proc = subprocess.Popen(
["clang-format", sys.argv[1]],
stdout=subprocess.PIPE, encoding='utf-8')
with open(sys.argv[1], 'r') as original:
diff_lines = list(
difflib.unified_diff(
original.readlines(),
proc.stdout.readlines(),
fromfile="unformatted",
tofile="formatted",
n=3))
sys.stdout.writelines(colorize(diff_lines))
sys.exit(1 if len(diff_lines) > 0 else 0)