summaryrefslogtreecommitdiff
path: root/repo/www/generate-tree.py
diff options
context:
space:
mode:
Diffstat (limited to 'repo/www/generate-tree.py')
-rwxr-xr-xrepo/www/generate-tree.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/repo/www/generate-tree.py b/repo/www/generate-tree.py
new file mode 100755
index 0000000..d858fe8
--- /dev/null
+++ b/repo/www/generate-tree.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python3
+
+from argparse import ArgumentParser
+import json
+
+from git import Repo
+
+from helpers import compute_directories
+
+
+def parse_arguments():
+ parser = ArgumentParser()
+ parser.add_argument('-o', '--output', help='Path to the output file.')
+ parser.add_argument(
+ 'extensions', nargs='+',
+ help='File extensions to consider when recording pages.'
+ )
+ return parser.parse_args()
+
+
+def main(arguments):
+ repo = Repo(search_parent_directories=True)
+
+ directories = compute_directories(arguments.extensions, repo)
+ serialized = ((d, directories[d].serialize()) for d in sorted(directories))
+
+ with open(arguments.output, 'w') as out:
+ json.dump(dict(serialized), out, sort_keys=True)
+
+
+if __name__ == '__main__':
+ main(parse_arguments())