diff options
Diffstat (limited to 'repo/www/generate-tree.py')
| -rwxr-xr-x | repo/www/generate-tree.py | 32 |
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()) |
