reworked CLI + accept --input or piping
This commit is contained in:
+26
-2
@@ -1,5 +1,6 @@
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
from . import img_factory
|
from . import img_factory
|
||||||
from . import meme_db
|
from . import meme_db
|
||||||
@@ -8,6 +9,19 @@ from . import utils
|
|||||||
from . import VERSION
|
from . import VERSION
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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()
|
meme_db.load_memes()
|
||||||
img_factory.load_fonts()
|
img_factory.load_fonts()
|
||||||
|
|
||||||
@@ -19,8 +33,18 @@ if __name__ == "__main__":
|
|||||||
file=sys.stderr)
|
file=sys.stderr)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
output_file = utils.read_argument(sys.argv, "-o", "--output", valued=True, delete=True)
|
input_data = None
|
||||||
img, errors = meme_otron.compute(*sys.argv[1:])
|
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:
|
for err in errors:
|
||||||
print(err, file=sys.stderr)
|
print(err, file=sys.stderr)
|
||||||
if img is None:
|
if img is None:
|
||||||
|
|||||||
Reference in New Issue
Block a user