fix: use prefix for vars

This commit is contained in:
Daylin Morgan 2025-02-05 01:21:45 -06:00
parent 3b172de07d
commit a648a8329c
Signed by: daylin
GPG key ID: 950D13E9719334AD
4 changed files with 21 additions and 13 deletions

View file

@ -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),

View 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"

View file

@ -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":

View file

@ -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