diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-01-12 03:45:29 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2013-01-12 03:45:29 (GMT) |
commit | 9df864239ea8e66d9385a66a1b5e20cb0f534217 (patch) | |
tree | e92a43a7d35f6bdb27a8ecd3446460b9ad44479e /config/format | |
parent | ea641e912f201e5e636a7e00fef18cc74e3d23b0 (diff) |
Cleanup config generation
Diffstat (limited to 'config/format')
-rwxr-xr-x | config/format | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/config/format b/config/format new file mode 100755 index 0000000..b3f8aeb --- /dev/null +++ b/config/format @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +import os +import json +import fnmatch +from operator import itemgetter + +config_dir = os.path.dirname(__file__) + +def format_files(json_files, sort_by=None): + for path in json_files: + in_file = open(path, "rb") + data = json.load(in_file) + in_file.close() + + if sort_by is not None: + data.sort(key=itemgetter(sort_by)) + + out_file = open(path, "wb") + json.dump(data, out_file, sort_keys=True, indent=4) + out_file.write('\n') + out_file.close() + +def list_dir(dirname, exclude=[]): + path = os.path.join(config_dir, dirname) + + json_files = [] + for filename in os.listdir(path): + if filename in exclude: + continue + + if fnmatch.fnmatch(filename, '*.json'): + json_files.append(os.path.join(path, filename)) + + return json_files + +format_files([os.path.join(config_dir, "config.json"), + os.path.join(config_dir, "deps", "index.json")]) + +format_files(list_dir("packages")) +format_files(list_dir("modules")) +format_files(list_dir("deps", exclude=["index.json"]), sort_by="name") |