diff --git a/meme_otron/__main__.py b/meme_otron/__main__.py index 1fcdd25..e707291 100644 --- a/meme_otron/__main__.py +++ b/meme_otron/__main__.py @@ -1,5 +1,6 @@ import sys import os +import logging from . import img_factory from . import meme_db @@ -8,6 +9,19 @@ from . import utils from . import VERSION if __name__ == "__main__": + wmark = not utils.read_argument(sys.argv, "-nw", "--no-watermark", delete=True) + debug = utils.read_argument(sys.argv, "-d", "--debug", delete=True) + verbose = utils.read_argument(sys.argv, "-v", "--verbose", delete=True) + output_file = utils.read_argument(sys.argv, "-o", "--output", valued=True, delete=True) + input_file = utils.read_argument(sys.argv, "-i", "--input", valued=True, delete=True) + + if verbose and debug: + logging.basicConfig(format="[%(asctime)s][%(levelname)s][%(module)s] %(message)s", level=logging.DEBUG) + elif verbose: + logging.basicConfig(format="[%(asctime)s][%(levelname)s][%(module)s] %(message)s", level=logging.INFO) + else: + logging.basicConfig(format="%(message)s", level=logging.WARNING) + meme_db.load_memes() img_factory.load_fonts() @@ -19,8 +33,18 @@ if __name__ == "__main__": file=sys.stderr) sys.exit(1) else: - output_file = utils.read_argument(sys.argv, "-o", "--output", valued=True, delete=True) - img, errors = meme_otron.compute(*sys.argv[1:]) + input_data = None + if input_file is not None: + try: + with open(input_file, "rb") as f: + input_data = f.read() + except IOError as e: + print(f"Cannot read '{input_file}': {e}", file=sys.stderr) + sys.exit(1) + elif not sys.stdin.isatty(): + input_data = utils.read_stream(sys.stdin.buffer) + + img, errors = meme_otron.compute(*sys.argv[1:], input_data=input_data, wmark=wmark, debug=debug) for err in errors: print(err, file=sys.stderr) if img is None: