diff --git a/config.nims b/config.nims index 858c803..d86a0e5 100644 --- a/config.nims +++ b/config.nims @@ -2,8 +2,9 @@ import std/os except getCurrentDir import std/[strformat, strutils] task test, "run tests": - selfExec "r tests/tbbansi.nim" - selfExec "r tests/cli/tester.nim" + const testDir = thisDir() / "tests" + selfExec fmt"r {testDir}/tbbansi.nim" + selfExec fmt"r {testDir}/cli/tester.nim" task develop, "install cligen for development": exec "nimble install -l 'cligen@1.7.5'" diff --git a/src/hwylterm/hwylcli.nim b/src/hwylterm/hwylcli.nim index 9417d0b..def3867 100644 --- a/src/hwylterm/hwylcli.nim +++ b/src/hwylterm/hwylcli.nim @@ -827,6 +827,7 @@ func subCmdsArray(cfg: CliCfg): NimNode = (`cmd`, `aliases`, `desc`) # is this one necessary? + proc hwylCliError*(msg: BbString) = quit $(bb("error ", "red") & msg) diff --git a/tests/cli/clis/base.nim b/tests/cli/clis/base.nim new file mode 100644 index 0000000..4ce60b5 --- /dev/null +++ b/tests/cli/clis/base.nim @@ -0,0 +1,6 @@ +import hwylterm, hwylterm/hwylcli + +hwylCli: + name "base" + run: + echo "a base cli" diff --git a/tests/cli/clis/errorOverride.nim b/tests/cli/clis/errorOverride.nim new file mode 100644 index 0000000..a5af70c --- /dev/null +++ b/tests/cli/clis/errorOverride.nim @@ -0,0 +1,10 @@ +import hwylterm, hwylterm/hwylcli + +proc hwylCliError*(msg: string) = + stderr.write "override the default error\n" + quit $(bb("error ", "red") & bb(msg)) + +hwylCli: + name "base" + run: + echo "a base cli" diff --git a/tests/cli/tester.nim b/tests/cli/tester.nim index 4ea699c..4d7b657 100644 --- a/tests/cli/tester.nim +++ b/tests/cli/tester.nim @@ -111,3 +111,6 @@ postSub from root! inside sub c """, ) + failWithArgs( + "errorOverride", "--flag","override the default error\nerror unknown flag: flag" + )