from argparse import ArgumentParser
from contextlib import contextmanager
import os.path
+from sys import stderr
from typing import Iterator
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(
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)',
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,
lambda x: ApplyTexFilters(args.texfilters, x),
layout,
args.geometry,
- texout)
+ texout,
+ log)