From 96ab6036d863ad6f246ed16ad32e36ff21a70823 Mon Sep 17 00:00:00 2001 From: Klemek Date: Sun, 12 Apr 2020 16:25:04 +0200 Subject: [PATCH] improved CLI --- meme_otron/__main__.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/meme_otron/__main__.py b/meme_otron/__main__.py index afba036..842aacb 100644 --- a/meme_otron/__main__.py +++ b/meme_otron/__main__.py @@ -9,9 +9,34 @@ from . import meme_otron if __name__ == "__main__": db.load_memes() 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: + 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:]) - with os.fdopen(os.dup(sys.stdout.fileno())) as output: - img.save(output, format="jpeg") + if output_f is None: + with os.fdopen(os.dup(sys.stdout.fileno())) as output: + 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) + +