summaryrefslogtreecommitdiff
path: root/repo/www/generate-tree.py
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2020-04-12 23:06:07 +0200
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2020-04-12 23:06:07 +0200
commit12e18454ba07c3b7747f8b868f6830f05de149c4 (patch)
tree317c3f700b9d088cf30466a197ffc512d12fc183 /repo/www/generate-tree.py
parent629664bd50ed4e72cffc33bf2e7082119d483469 (diff)
downloadmemory-leaks-12e18454ba07c3b7747f8b868f6830f05de149c4.tar.xz
Add intermediate step to cache site tree
Seems kind of wasteful to recompute it every time. Also, now subsequent scripts don't have to care about file extensions anymore.
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())