reworked CLI + accept --input or piping
This commit is contained in:
+26
-2
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user