diff options
Diffstat (limited to 'build.py')
| -rw-r--r-- | build.py | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -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__': |
