diff options
| author | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2020-04-12 23:06:07 +0200 |
|---|---|---|
| committer | Kévin Le Gouguec <kevin.legouguec@gmail.com> | 2020-04-12 23:06:07 +0200 |
| commit | 12e18454ba07c3b7747f8b868f6830f05de149c4 (patch) | |
| tree | 317c3f700b9d088cf30466a197ffc512d12fc183 /repo/www/generate-index.py | |
| parent | 629664bd50ed4e72cffc33bf2e7082119d483469 (diff) | |
| download | memory-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-index.py')
| -rwxr-xr-x | repo/www/generate-index.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/repo/www/generate-index.py b/repo/www/generate-index.py index 96c5dc6..d28c6a6 100755 --- a/repo/www/generate-index.py +++ b/repo/www/generate-index.py @@ -1,19 +1,19 @@ #!/usr/bin/env python3 from argparse import ArgumentParser +import json from os import path from subprocess import run from git import Repo -from helpers import compute_directories +from helpers import deserialize_directories def parse_arguments(): parser = ArgumentParser() parser.add_argument( - 'extensions', type=str.split, - help='File extensions to consider when recording pages.' + 'site_tree', help='JSON file describing the page tree.' ) parser.add_argument( 'target', help='Pathspec to generate an index for.' @@ -24,8 +24,9 @@ def parse_arguments(): return parser.parse_args() -def list_files(extensions, folder, repo): - directories = compute_directories(extensions, repo) +def list_files(tree_file, folder): + with open(tree_file) as tree: + directories = deserialize_directories(json.load(tree)) return directories[folder].subfolders, directories[folder].files @@ -59,16 +60,15 @@ def convert_page(content, output): def main(arguments): - repo = Repo(search_parent_directories=True) - target = arguments.target - extensions = arguments.extensions - folders, files = list_files(extensions, target, repo) + folders, files = list_files(arguments.site_tree, target) names = [] intro = None + repo = Repo(search_parent_directories=True) + for f in files: name, _ = path.splitext(f) if name == 'README': |
