X-Git-Url: http://git.scottworley.com/paperdoorknob/blobdiff_plain/131deef1eba442d6e05c2ff6c6f7669b4b9e2b24..606c97c59b4f50d8025b3b2946f6f8a4942c5fb9:/args.py diff --git a/args.py b/args.py index 384e448..b765fc6 100644 --- a/args.py +++ b/args.py @@ -8,6 +8,7 @@ from argparse import ArgumentParser from contextlib import contextmanager import os.path +from sys import stderr from typing import Iterator @@ -23,6 +24,10 @@ from spec import Spec from texify import PandocTexifier +def _print_status(msg: str) -> None: + print(msg, file=stderr, end='' if msg.endswith('\r') else '\n') + + def _command_line_parser() -> ArgumentParser: parser = ArgumentParser(prog='paperdoorknob', description='Print glowfic') parser.add_argument( @@ -51,15 +56,19 @@ See https://faculty.bard.edu/bloch/geometry.pdf for details default=20) parser.add_argument( '--layout', - default='below', + default='beside', help='Whether to put character and author information `beside` or `below` the icon ' + - '(default: below)') + '(default: beside)') parser.add_argument( '--out', help='The filename stem at which to write output ' + '(eg: "%(default)s" produces %(default)s.tex, %(default)s.pdf, etc.)', default='book') parser.add_argument('--pandoc', help='Location of the pandoc executable') + parser.add_argument( + '--quiet', + action='store_true', + help='Suppress progress messages') parser.add_argument( '--texfilters', help='Which TeX filters to use (default: %(default)s)', @@ -85,7 +94,8 @@ def spec_from_commandline_args() -> Iterator[Spec]: layout = BesideIconLayout(texifier, args.image_size) else: raise ValueError(f'Unknown layout: {args.layout}') - with CachingFetcher(args.cache_path, args.timeout) as fetcher: + log = (lambda _: None) if args.quiet else _print_status + with CachingFetcher(args.cache_path, args.timeout, log) as fetcher: with open(args.out + '.tex', 'wb') as texout: yield Spec( args.url, @@ -96,4 +106,5 @@ def spec_from_commandline_args() -> Iterator[Spec]: lambda x: ApplyTexFilters(args.texfilters, x), layout, args.geometry, - texout) + texout, + log)