From 2b5eab09fd4636ae1f35a8aac9d6cbe2ac706f83 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 26 Nov 2016 01:58:28 +0100 Subject: Improve cmdline parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- dlu.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'dlu.py') diff --git a/dlu.py b/dlu.py index 2a04348..c12b702 100755 --- a/dlu.py +++ b/dlu.py @@ -5,15 +5,32 @@ import sys, os global dictionary_name, sought_word, display_envs, x_reads, reads, wordmod, standard_page_remap, load_dictionary, open_dictionary ## Parse command line. -if len(sys.argv) == 2 and sys.argv[1] == '-l': - f_list = True -elif len(sys.argv) != 3: +def usage(): print('Usage: dlu (-l | DICTIONARY WORD)', file = sys.stderr) sys.exit(1) +f_list = False +i, n = 1, len(sys.argv) +while i < n: + if sys.argv[i] == '-l': + if f_list: + usage() + f_list = True + elif sys.argv[i] == '--': + i += 1 + break + elif sys.argv[i].startswith('-'): + usage() + else: + break + i += 1 +if f_list: + if i != len(sys.argv): + usage() else: - dictionary_name = sys.argv[1] - sought_word = sys.argv[2] - f_list = False + if i + 2 != len(sys.argv): + usage() + dictionary_name = sys.argv[i] + sought_word = sys.argv[i + 1] # Default functions, can be overriden by configurations on call to load_dictionary. if not f_list: -- cgit v1.2.3-70-g09d2