improved CLI

This commit is contained in:
Klemek
2020-04-12 16:25:04 +02:00
parent 8512bf616d
commit 96ab6036d8
+27 -2
View File
@@ -9,9 +9,34 @@ from . import meme_otron
if __name__ == "__main__": if __name__ == "__main__":
db.load_memes() db.load_memes()
imgf.load_fonts() imgf.load_fonts()
if len(sys.argv) <= 1 or sys.argv[1].lower().strip() == "help":
print("python -m meme_otron (meme_id) \"[text 1]\" \"[text 2]\" ... > file.jpg", file=sys.stderr) if len(sys.argv) <= 1 or sys.argv[1].lower().strip() == "help" or "-h" in sys.argv :
print("python -h\r\n",
"python -m meme_otron (meme_id) \"[text 1]\" \"[text 2]\" ... > file.jpg\r\n",
"python -m meme_otron -o file.jpg (meme_id) \"[text 1]\" \"[text 2]\" ...",
file=sys.stderr)
sys.exit(1)
else: else:
output_f = None
if "-o" in sys.argv:
i = sys.argv.index("-o")
if len(sys.argv) >= i:
output_f = sys.argv[i+1]
del sys.argv[i+1]
del sys.argv[i]
img = meme_otron.compute(*sys.argv[1:]) img = meme_otron.compute(*sys.argv[1:])
if output_f is None:
with os.fdopen(os.dup(sys.stdout.fileno())) as output: with os.fdopen(os.dup(sys.stdout.fileno())) as output:
img.save(output, format="jpeg") img.save(output, format="jpeg")
else:
try:
img.save(output_f)
print(f"Wrote '{output_f}'")
except OSError as e:
print(f"Cannot write '{output_f}': {e}", file=sys.stderr)
sys.exit(1)
except ValueError as e:
print(f"Cannot write '{output_f}': {e}", file=sys.stderr)
sys.exit(1)