Commit 6a61499847b91eec8c08fa0e558da99dbd5e1cf2
1 parent
4aa613cb
Fix for long opts, various cosmetics.
Showing
2 changed files
with
11 additions
and
13 deletions
lapp.nim
... | ... | @@ -130,7 +130,7 @@ proc fail(msg: string) = |
130 | 130 | stderr.writeln(progname & ": " & msg) |
131 | 131 | quit(usage) |
132 | 132 | |
133 | -proc parseSpec (u: string) = | |
133 | +proc parseSpec(u: string) = | |
134 | 134 | var |
135 | 135 | L: PLexer |
136 | 136 | tok: string |
... | ... | @@ -152,7 +152,7 @@ proc parseSpec (u: string) = |
152 | 152 | if tok == "-" or tok == "--": # flag |
153 | 153 | if tok == "-": #short flag |
154 | 154 | let flag = L.get |
155 | - if len(flag) != 1: fail("short flag has one character!") | |
155 | + if len(flag) != 1: fail("short option has one character!") | |
156 | 156 | tok = L.get |
157 | 157 | if tok == ",": # which is alias for long flag |
158 | 158 | tok = L.get |
... | ... | @@ -219,7 +219,7 @@ proc closeFiles() {.noconv.} = |
219 | 219 | if nfiles == 0: return |
220 | 220 | for i in 1..nfiles: files[i].close() |
221 | 221 | |
222 | -proc parseArguments (usage: string, args: seq[string]): Table[string,PValue] = | |
222 | +proc parseArguments(usage: string, args: seq[string]): Table[string,PValue] = | |
223 | 223 | var |
224 | 224 | vars = initTable[string,PValue]() |
225 | 225 | n = len(args) - 1 |
... | ... | @@ -231,7 +231,7 @@ proc parseArguments (usage: string, args: seq[string]): Table[string,PValue] = |
231 | 231 | flagvalues: seq[seq[string]] |
232 | 232 | |
233 | 233 | proc next(): string = |
234 | - if i > n: fail("a flag required a value!") | |
234 | + if i > n: fail("an option required a value!") | |
235 | 235 | result = args[i] |
236 | 236 | i += 1 |
237 | 237 | |
... | ... | @@ -242,12 +242,12 @@ proc parseArguments (usage: string, args: seq[string]): Table[string,PValue] = |
242 | 242 | if n < 20: |
243 | 243 | fail("no such argument: " & $n) |
244 | 244 | else: |
245 | - fail("no such flag " & c) | |
245 | + fail("no such option: " & c) | |
246 | 246 | |
247 | 247 | proc get_spec(name: string): PSpec = |
248 | 248 | result = parm_spec[name] |
249 | 249 | if result == nil: |
250 | - fail("no such flag " & name) | |
250 | + fail("no such option: " & name) | |
251 | 251 | |
252 | 252 | newSeq(flagvalues, 0) |
253 | 253 | parseSpec(usage) |
... | ... | @@ -262,7 +262,7 @@ proc parseArguments (usage: string, args: seq[string]): Table[string,PValue] = |
262 | 262 | if short: # all short args are aliases, even if only to themselves |
263 | 263 | flag = get_alias(arg[0]) |
264 | 264 | else: |
265 | - flag = arg | |
265 | + flag = arg[1..high(arg)] | |
266 | 266 | info = get_spec(flag) |
267 | 267 | if info.needsValue: |
268 | 268 | if short and len(arg) > 1: # value can follow short flag |
... | ... | @@ -291,7 +291,7 @@ proc parseArguments (usage: string, args: seq[string]): Table[string,PValue] = |
291 | 291 | for flag,info in parm_spec: |
292 | 292 | if not info.used: |
293 | 293 | if info.defVal == "": # no default! |
294 | - fail("required flag missing: " & flag) | |
294 | + fail("required option or argument missing: " & flag) | |
295 | 295 | flagvalues.add(@[flag,info.defVal]) |
296 | 296 | |
297 | 297 | # cool, we have the info, can convert known flags |
... | ... | @@ -348,7 +348,7 @@ proc parseArguments (usage: string, args: seq[string]): Table[string,PValue] = |
348 | 348 | |
349 | 349 | return vars |
350 | 350 | |
351 | -proc parse* (usage: string): Table[string,PValue] = | |
351 | +proc parse*(usage: string): Table[string,PValue] = | |
352 | 352 | var |
353 | 353 | args: seq[string] |
354 | 354 | n = paramCount() |
... | ... | @@ -363,7 +363,7 @@ when isMainModule: |
363 | 363 | -n: (default 10) number of lines |
364 | 364 | -v,--verbose: (bool...) verbosity level |
365 | 365 | -a,--alpha useless parm |
366 | - <files>: (default stdin...) | |
366 | + <file>: (default stdin...) | |
367 | 367 | |<out>: (default stdout) |
368 | 368 | """ |
369 | 369 | ... | ... |
lapp.nimble