mirror of
https://github.com/sharkdp/bat.git
synced 2025-06-24 09:15:55 +01:00
Add comparison script
This commit is contained in:
tests/syntax-tests
65
tests/syntax-tests/compare_highlighted_versions.py
vendored
Executable file
65
tests/syntax-tests/compare_highlighted_versions.py
vendored
Executable file
@ -0,0 +1,65 @@
|
||||
#!/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")
|
Reference in New Issue
Block a user