diff --git a/cliutils.nim b/cliutils.nim index 1f9cfa0..af3a109 100644 --- a/cliutils.nim +++ b/cliutils.nim @@ -1,4 +1,4 @@ -import docopt, json, osproc, posix, nre, streams, strtabs, terminal, unicode +import docopt, json, osproc, posix, nre, streams, strtabs, tables, terminal, unicode import os except sleep import strutils except toUpper, toLower @@ -188,6 +188,17 @@ let STRIP_ANSI_REGEX = re"\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]" proc stripAnsi*(str: string): string = return str.replace(STRIP_ANSI_REGEX, "") +proc queryParamsToCliArgs*(queryParams: Table[string, string]): seq[string] = + result = @[] + + for k,v in queryParams: + # support ?arg1=val1&arg2=val2 -> cmd val1 val2 + if k.startsWith("arg"): result.add(v) + + else : + result[1].add("--" & k) + if v != "true": result[1].add(v) # support things like ?verbose=true -> cmd --verbose + proc queryParamsToCliArgs*(queryParams: StringTableRef): seq[string] = result = @[] diff --git a/cliutils.nimble b/cliutils.nimble index 3eec9f1..b6f45de 100644 --- a/cliutils.nimble +++ b/cliutils.nimble @@ -1,6 +1,6 @@ # Package -version = "0.6.0" +version = "0.6.1" author = "Jonathan Bernard" description = "Helper functions for writing command line interfaces." license = "MIT"