From 81573058cac79f366755ddce5bd7dcfb55828644 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Sat, 14 Mar 2020 00:41:06 +0100 Subject: Add rudimentary webizer scripts --- repo/www/make-deps.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 repo/www/make-deps.py (limited to 'repo/www/make-deps.py') diff --git a/repo/www/make-deps.py b/repo/www/make-deps.py new file mode 100755 index 0000000..d6720e5 --- /dev/null +++ b/repo/www/make-deps.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 + +from os import path +from subprocess import run +from sys import argv, exit + + +def parse_arguments(args): + if len(args) != 3: + exit(f'Usage: {argv[0]} TOP-DIR OUTPUT-DIR') + + return argv[1], argv[2] + + +def find_sources(top_dir): + p = run( + ('find', top_dir, '-name', '*.md', '-o', '-name', '*.org'), + capture_output=True, check=True, text=True + ) + + return p.stdout.splitlines() + + +def html_path(source_path, top_dir, out_dir): + _, ext = path.splitext(source_path) + return source_path.replace(top_dir, out_dir).replace(ext, '.html') + + +def write_dependencies(output, sources, top_dir, out_dir): + pages = [] + directories = set() + + for src in sources: + html = html_path(src, top_dir, out_dir) + html_dir = path.dirname(html) + + print(f'{html}: {src} | {html_dir}', file=output) + + pages.append(html) + directories.add(html_dir) + + print(file=output) + print(f'pages = {" ".join(pages)}', file=output) + print(f'folders = {" ".join(directories)}', file=output) + + +def main(argv): + top_dir, out_dir = parse_arguments(argv) + source_files = find_sources(top_dir) + + with open('deps.mk', 'w') as deps: + write_dependencies(deps, source_files, top_dir, out_dir) + + +if __name__ == '__main__': + main(argv) -- cgit v1.2.3