import
parseopt2
const usageString =
"""Usage: sr [OPTIONS] <search-query"""
proc doSearch(search: string) =
echo("Searching for ", search)
proc parseOpts(): string =
var
search: string
posArgCount = 0
for kind, key, val in getopt():
case kind
of cmdArgument:
if posArgCount == 0:
search = key
posArgCount += 1
else:
raise newException(SystemError,
"Only one position argument is allowed")
of cmdLongOption, cmdShortOption:
case key
of "help", "h":
raise newException(SystemError, usageString)
else:
raise newException(SystemError,
"Unknown option: " & key)
of cmdEnd: discard
if posArgCount == 0 or search == "":
raise newException(SystemError,
"Search query is not defined")
return search
proc main() =
let search = parseOpts()
doSearch(search)
when isMainModule:
main()