1#!/usr/bin/python3
2# all arguments to this script are considered as json files
3# and attempted to be formatted alphabetically
4
5import json
6import os
7from sys import argv
8
9files = argv[1:]
10
11for file in files[:]:
12    if os.path.isdir(file):
13        files.remove(file)
14        for f in os.listdir(file):
15            files.append(os.path.join(file, f))
16
17for file in files:
18    if not file.endswith(".json"):
19        continue
20    print("formatting file {}".format(file))
21    with open(file) as f:
22        j = json.load(f)
23
24    if isinstance(j, list):
25        for item in j:
26            item["Exposes"] = sorted(item["Exposes"], key=lambda k: k["Type"])
27    else:
28        j["Exposes"] = sorted(j["Exposes"], key=lambda k: k["Type"])
29
30    with open(file, "w") as f:
31        f.write(
32            json.dumps(j, indent=4, sort_keys=True, separators=(",", ": "))
33        )
34        f.write("\n")
35