diff options
| author | Mattias Andrée <maandree@kth.se> | 2016-11-26 01:58:28 +0100 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2016-11-26 01:58:28 +0100 |
| commit | 2b5eab09fd4636ae1f35a8aac9d6cbe2ac706f83 (patch) | |
| tree | bc149f306fea3620114ed07952e5222964750044 | |
| parent | Add manual (diff) | |
| download | dlu-2b5eab09fd4636ae1f35a8aac9d6cbe2ac706f83.tar.gz dlu-2b5eab09fd4636ae1f35a8aac9d6cbe2ac706f83.tar.bz2 dlu-2b5eab09fd4636ae1f35a8aac9d6cbe2ac706f83.tar.xz | |
Improve cmdline parsing
Signed-off-by: Mattias Andrée <maandree@kth.se>
| -rwxr-xr-x | dlu.py | 29 |
1 files changed, 23 insertions, 6 deletions
@@ -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: |
