summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2026-06-18 22:33:17 +0200
committerPaweł Redman <pawel.redman@gmail.com>2026-06-18 22:33:17 +0200
commitf6110f5ae807c1b5c7427ff5bb43cb202d812782 (patch)
treec2cd99c09a9097ca1c485f5109c7d20d2343572c
parent171ffcfb9b3c9aaf180e40af9e9956bf92f9c5ff (diff)
Better diagnostics and rework -w
-rw-r--r--build.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/build.py b/build.py
index 15fe9b8..3e72993 100644
--- a/build.py
+++ b/build.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
+import itertools as it
import json
import os
import shutil
@@ -135,19 +136,22 @@ def main() -> None:
os.environ['TYPST_FEATURES'] = 'html'
builder = Builder(site_dir, static_dir, public_dir, temp_dir)
- builder.build()
if args.watch:
- logger.info('Watching for changes...')
-
watch_filter = DefaultFilter(ignore_paths=[temp_dir])
+ iterator = it.chain(range(1), watch(site_dir, watch_filter=watch_filter))
- for changes in watch(site_dir, watch_filter=watch_filter):
- print(changes)
- try:
- builder.build()
- except TypstError as e:
- logger.exception(e)
+ logger.info('Watching for changes...')
+ else:
+ iterator = range(1)
+
+ for _ in iterator:
+ try:
+ builder.build()
+ except TypstError as e:
+ logger.error('Typst failed:\n' + e.diagnostic)
+ if not args.watch:
+ raise
if __name__ == '__main__':