@@ -0,0 +1,40 @@
1+#!/usr/bin/env python3
2+import itertools
3+import subprocess
4+import pathlib
5+import shutil
6+
7+def generate_snapshots():
8+ single_styles = ["changes", "grid", "header", "numbers"]
9+ collective_styles = ["full", "plain"]
10+
11+ for num in range(len(single_styles)):
12+ for grouped in itertools.combinations(single_styles, num + 1):
13+ generate_snapshot(",".join(grouped))
14+
15+ for style in collective_styles:
16+ generate_snapshot(style)
17+
18+def generate_snapshot(option):
19+ command = "../../target/debug/bat --style={0} sample.rs > output/{0}.snapshot.txt".format(
20+ option
21+ )
22+ print("generating snapshot for {}".format(option))
23+ subprocess.call(command, shell=True)
24+
25+def prepare_output_dir():
26+ shutil.rmtree("output", ignore_errors=True)
27+ pathlib.Path("output").mkdir()
28+
29+def modify_sample_file():
30+ print("modifying sample.rs to show changes")
31+ shutil.copyfile("sample.modified.rs", "sample.rs")
32+
33+def undo_sample_file_modification():
34+ print("undoing sample.rs modifications")
35+ subprocess.call("git checkout -- sample.rs", shell=True)
36+
37+prepare_output_dir()
38+modify_sample_file()
39+generate_snapshots()
40+undo_sample_file_modification()