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    print("formatting file {}".format(file))
19    with open(file) as f:
20        j = json.load(f)
21
22    if isinstance(j, list):
23        for item in j:
24            item["Exposes"] = sorted(item["Exposes"], key=lambda k: k["Type"])
25    else:
26        j["Exposes"] = sorted(j["Exposes"], key=lambda k: k["Type"])
27
28    with open(file, 'w') as f:
29        f.write(json.dumps(j, indent=4, sort_keys=True, separators=(',', ': ')))
30