mirror of
https://github.com/sharkdp/bat
synced 2024-11-23 20:33:06 +00:00
66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
import glob
|
||
|
import sys
|
||
|
import os.path as path
|
||
|
import difflib
|
||
|
import argparse
|
||
|
|
||
|
|
||
|
def compare_highlighted_versions(root_old, root_new):
|
||
|
print("Comparing the following directories:")
|
||
|
print(" -", root_old)
|
||
|
print(" -", root_new)
|
||
|
has_changes = False
|
||
|
for path_old in glob.glob(path.join(root_old, "*", "*")):
|
||
|
filename = path.basename(path_old)
|
||
|
dirname = path.basename(path.dirname(path_old))
|
||
|
|
||
|
path_new = path.join(root_new, dirname, filename)
|
||
|
|
||
|
print("\n========== {}/{}".format(dirname, filename))
|
||
|
|
||
|
with open(path_old) as file_old:
|
||
|
lines_old = file_old.readlines()
|
||
|
|
||
|
with open(path_new) as file_new:
|
||
|
lines_new = file_new.readlines()
|
||
|
|
||
|
diff = difflib.unified_diff(
|
||
|
lines_old, lines_new, fromfile=path_old, tofile=path_new
|
||
|
)
|
||
|
|
||
|
file_has_changes = False
|
||
|
for line in diff:
|
||
|
print(line, end="")
|
||
|
file_has_changes = True
|
||
|
|
||
|
if file_has_changes:
|
||
|
has_changes = True
|
||
|
else:
|
||
|
print("No changes")
|
||
|
print()
|
||
|
|
||
|
return has_changes
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
parser = argparse.ArgumentParser(
|
||
|
description="This script compares two directories that were created "
|
||
|
"by 'create_highlighted_versions.py'."
|
||
|
)
|
||
|
parser.add_argument(
|
||
|
"OLD", help="Path to the old (stored) version of the highlighted output",
|
||
|
)
|
||
|
parser.add_argument(
|
||
|
"NEW", help="Path to the new version of the highlighted output",
|
||
|
)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
if compare_highlighted_versions(args.OLD, args.NEW):
|
||
|
print("Error: files with changes have been found")
|
||
|
sys.exit(1)
|
||
|
else:
|
||
|
print("Directories are the same")
|