=== modified file 'ppio.nim' --- ppio.nim 2019-04-01 12:45:58 +0000 +++ ppio.nim 2019-04-01 12:39:56 +0000 @@ -10,13 +10,13 @@ write(stdout, "writeVersion()\n") quit(0) -# proc posixPrintArgs(): void = -# var argc = paramCount() -# for n in countup(1, argc): -# echo " [" & paramStr(n) & "]" -# echo "---" -# for s in commandLineParams(): -# echo " [" & s & "]" +proc posixPrintArgs(): void = + var argc = paramCount() + for n in countup(1, argc): + echo " [" & paramStr(n) & "]" + echo "---" + for s in commandLineParams(): + echo " [" & s & "]" type Args = tuple[ @@ -66,10 +66,28 @@ inc(n) return args -proc main(): void = +proc main(cmdline = ""): void = + var filename = "" + var p = initOptParser(cmdline) + write(stdout, "cmdline: " & repr(p.cmd) & "\n") + for a in os.parseCmdLine(p.cmd): + echo " «" & a & "»" var args = posixParseArgs() - write(stderr, "args: " & repr(args) & "\n") - if len(args.exe) == 0: + write(stdout, "args: " & repr(args) & "\n") + for kind, key, val in p.getopt(): + case kind + of cmdArgument: + write(stdout, "cmdArgument: " & repr(key) & "\n") + filename = key + of cmdLongOption, cmdShortOption: + write(stdout, "option: " & repr(key) & "\n") + case key + of "": break + of "help", "h": writeHelp(0) + of "version", "v": writeVersion() + of cmdEnd: assert(false) # cannot happen + if filename == "": + # no filename has been given, so we show the help: echo "No arguments" writeHelp(1)