From 12e18454ba07c3b7747f8b868f6830f05de149c4 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Sun, 12 Apr 2020 23:06:07 +0200 Subject: 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. --- repo/www/generate-tree.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 repo/www/generate-tree.py (limited to 'repo/www/generate-tree.py') 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()) -- cgit v1.2.3