mirror of
https://github.com/daylinmorgan/hwylterm.git
synced 2025-02-23 01:35:50 -06:00
fix: use prefix for vars
This commit is contained in:
parent
3b172de07d
commit
a648a8329c
4 changed files with 21 additions and 13 deletions
|
@ -1138,9 +1138,9 @@ proc parse*[T](p: var OptParser, target: var KV[string, T]) =
|
||||||
func shortLongCaseStmt(cfg: CliCfg, printHelpName: NimNode, version: NimNode): NimNode =
|
func shortLongCaseStmt(cfg: CliCfg, printHelpName: NimNode, version: NimNode): NimNode =
|
||||||
var caseStmt = nnkCaseStmt.newTree()
|
var caseStmt = nnkCaseStmt.newTree()
|
||||||
if NoNormalize notin cfg.settings:
|
if NoNormalize notin cfg.settings:
|
||||||
caseStmt.add nnkCall.newTree(ident"optionNormalize", ident"key")
|
caseStmt.add nnkCall.newTree(ident"optionNormalize", ident"hwylKey")
|
||||||
else:
|
else:
|
||||||
caseStmt.add ident"key"
|
caseStmt.add ident"hwylKey"
|
||||||
|
|
||||||
caseStmt.add nnkOfBranch.newTree(newLit(""), quote do: hwylCliError("empty flag not supported currently"))
|
caseStmt.add nnkOfBranch.newTree(newLit(""), quote do: hwylCliError("empty flag not supported currently"))
|
||||||
|
|
||||||
|
@ -1170,7 +1170,7 @@ func shortLongCaseStmt(cfg: CliCfg, printHelpName: NimNode, version: NimNode): N
|
||||||
|
|
||||||
caseStmt.add branch
|
caseStmt.add branch
|
||||||
|
|
||||||
caseStmt.add nnkElse.newTree(quote do: hwylCliError("unknown flag: [b]" & key))
|
caseStmt.add nnkElse.newTree(quote do: hwylCliError("unknown flag: [b]" & hwylKey))
|
||||||
|
|
||||||
result = nnkStmtList.newTree(caseStmt)
|
result = nnkStmtList.newTree(caseStmt)
|
||||||
|
|
||||||
|
@ -1393,6 +1393,7 @@ func positionalArgsOfBranch(cfg: CliCfg): NimNode =
|
||||||
inc nArgs
|
inc nArgs
|
||||||
parseArgs(p, result)
|
parseArgs(p, result)
|
||||||
|
|
||||||
|
|
||||||
func hwylCliImpl(cfg: CliCfg): NimNode =
|
func hwylCliImpl(cfg: CliCfg): NimNode =
|
||||||
let
|
let
|
||||||
version = cfg.version or newLit("")
|
version = cfg.version or newLit("")
|
||||||
|
@ -1438,16 +1439,11 @@ func hwylCliImpl(cfg: CliCfg): NimNode =
|
||||||
# TODO: first key needs to be normalized?
|
# TODO: first key needs to be normalized?
|
||||||
# TODO: don't use getopt? use p.next() instead?
|
# TODO: don't use getopt? use p.next() instead?
|
||||||
parserBody.add nnkForStmt.newTree(
|
parserBody.add nnkForStmt.newTree(
|
||||||
ident"kind", ident"key", ident"val",
|
ident"hwylKind", ident"hwylKey", ident"hwylVal",
|
||||||
# nnkCall.newTree(nnkDotExpr.newTree(optParser,ident("getopt"))),
|
|
||||||
nnkCall.newTree(ident"getopt", optParser),
|
nnkCall.newTree(ident"getopt", optParser),
|
||||||
nnkStmtList.newTree(
|
nnkStmtList.newTree(
|
||||||
# # for debugging..
|
|
||||||
# quote do:
|
|
||||||
# echo `kind`,"|",`key`,"|",`val`
|
|
||||||
# ,
|
|
||||||
nnkCaseStmt.newTree(
|
nnkCaseStmt.newTree(
|
||||||
ident"kind",
|
ident"hwylKind",
|
||||||
nnkOfBranch.newTree(ident("cmdError"), quote do: hwylCliError(p.message)),
|
nnkOfBranch.newTree(ident("cmdError"), quote do: hwylCliError(p.message)),
|
||||||
nnkOfBranch.newTree(ident("cmdEnd"), quote do: hwylCliError("reached cmdEnd unexpectedly.")),
|
nnkOfBranch.newTree(ident("cmdEnd"), quote do: hwylCliError("reached cmdEnd unexpectedly.")),
|
||||||
positionalArgsOfBranch(cfg),
|
positionalArgsOfBranch(cfg),
|
||||||
|
|
11
tests/cli/clis/flagKey.nim
Normal file
11
tests/cli/clis/flagKey.nim
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
import hwylterm, hwylterm/hwylcli
|
||||||
|
|
||||||
|
hwylCli:
|
||||||
|
name "base"
|
||||||
|
flags:
|
||||||
|
key "a flag named 'key'"
|
||||||
|
run:
|
||||||
|
if key:
|
||||||
|
echo "key set"
|
||||||
|
else:
|
||||||
|
echo "key not set"
|
|
@ -26,6 +26,7 @@ suite "flags":
|
||||||
"enumFlag", "--color black",
|
"enumFlag", "--color black",
|
||||||
"error failed to parse value for color as enum: black expected one of: red,blue,green",
|
"error failed to parse value for color as enum: black expected one of: red,blue,green",
|
||||||
)
|
)
|
||||||
|
okWithArgs("flagKey", "--key", "key set")
|
||||||
|
|
||||||
suite "subcommands":
|
suite "subcommands":
|
||||||
|
|
||||||
|
|
6
todo.md
6
todo.md
|
@ -15,13 +15,13 @@
|
||||||
### cli generator
|
### cli generator
|
||||||
|
|
||||||
- [x] add InferShortFlags setting
|
- [x] add InferShortFlags setting
|
||||||
- [ ] ShowHelp setting should occur after "a hwylCliError"
|
- [x] add support for types(metavars)/defaults/required in help output
|
||||||
|
- [ ] ShowHelp setting should also occur after "a hwylCliError"
|
||||||
could be by default (see `program --help` for more info.)
|
could be by default (see `program --help` for more info.)
|
||||||
- [ ] consider support "more verbose" help i.e. -h vs --help giving different results
|
- [ ] consider support "more verbose" help i.e. -h vs --help giving different results
|
||||||
- [ ] add support for types(metavars)/defaults/required in help output
|
|
||||||
- [ ] add support for E/env param for flags to add custom env_var (in help (env: OPTIONAL_ENV_VAR))
|
- [ ] add support for E/env param for flags to add custom env_var (in help (env: OPTIONAL_ENV_VAR))
|
||||||
inject this code in the same place as the "default" setting
|
inject this code in the same place as the "default" setting
|
||||||
- [ ] BUG: flag can't be `key`
|
- [x] BUG: flag can't be `key`
|
||||||
- [ ] consider default (or opt in) "help subcmd"
|
- [ ] consider default (or opt in) "help subcmd"
|
||||||
> app help (show all help?)
|
> app help (show all help?)
|
||||||
> app help <subcmd> same as app <subcmd> --help
|
> app help <subcmd> same as app <subcmd> --help
|
||||||
|
|
Loading…
Add table
Reference in a new issue