summaryrefslogtreecommitdiff
path: root/repo/www/generate-index.py
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2020-03-25 18:48:12 +0100
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2020-03-25 21:13:44 +0100
commit1b7eebb3563dab36584247bcab1d8e3b4e78833b (patch)
treedfff7b3bf09b749795cf7d451c2a1fa8a4f60334 /repo/www/generate-index.py
parent355b77c1fff8132cd3445c375140cf51e736d8a0 (diff)
downloadmemory-leaks-1b7eebb3563dab36584247bcab1d8e3b4e78833b.tar.xz
Split index generation and HTML conversion
So that I can re-use generate-index.py for READMEs.
Diffstat (limited to 'repo/www/generate-index.py')
-rwxr-xr-xrepo/www/generate-index.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/repo/www/generate-index.py b/repo/www/generate-index.py
new file mode 100755
index 0000000..23df192
--- /dev/null
+++ b/repo/www/generate-index.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python3
+
+from os import path
+from sys import argv, exit
+
+from git import Repo
+
+from helpers import compute_directories
+
+
+def parse_arguments(args):
+ if len(args) != 3:
+ exit(f'Usage: {argv[0]} EXTENSIONS FOLDER')
+
+ return argv[1].split(), argv[2]
+
+
+def list_files(extensions, folder):
+ directories = compute_directories(
+ extensions, Repo(search_parent_directories=True)
+ )
+ return directories[folder].subfolders, directories[folder].files
+
+
+def generate_index_page(title, directories, files):
+ lines = (f'% {title}',) + tuple(
+ f'- [{d}/]({d}/index.html)' for d in directories
+ ) + tuple(
+ f'- [{f}]({f}.html)' for f in files
+ )
+ return '\n'.join(lines)
+
+
+def main(arguments):
+ extensions, folder = parse_arguments(arguments)
+
+ title = path.basename(folder) if folder else 'index'
+
+ folders, files = list_files(extensions, folder)
+
+ parsed_filenames = (path.splitext(f) for f in files)
+ names = tuple(name for name, _ in parsed_filenames)
+
+ print(generate_index_page(title, folders, names))
+
+
+if __name__ == '__main__':
+ main(argv)