35 lines
941 B
Python
Executable File
35 lines
941 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
import glob
|
|
import json
|
|
import sys
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('globs', nargs='+', help='List of JSON file globs')
|
|
parser.add_argument('--write', action='store_true', help='Write out formatted files')
|
|
args = parser.parse_args()
|
|
|
|
needs_format = []
|
|
|
|
for pattern in args.globs:
|
|
for cfg in glob.glob(pattern):
|
|
with open(cfg, "r") as fr:
|
|
existing = fr.read()
|
|
j = json.loads(existing)
|
|
new = json.dumps(j, indent="\t")
|
|
new += "\n"
|
|
if new != existing:
|
|
if args.write:
|
|
with open(cfg, "w") as fw:
|
|
fw.write(new)
|
|
else:
|
|
needs_format.append(cfg)
|
|
|
|
if len(needs_format) > 0:
|
|
print("Files need reformatting:")
|
|
for file in needs_format:
|
|
print(f"\t{file}")
|
|
print("Run ./test/format-configs.py --write 'test/config*/*.json'")
|
|
sys.exit(1)
|