reworked CLI + accept --input or piping

This commit is contained in:
klemek
2020-04-29 12:25:40 +02:00
parent 01afa3f16d
commit f83ae349d6
+26 -2
View File
@@ -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: