mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-24 10:09:32 -06:00
CLI: unknown options are usage errors (#168)
Args::parse kept any unrecognised `--option` as a valueless flag nobody read, so `exec comp.new --bogus` ran with defaults and exit 0, and a misspelt valued option left its value behind as a positional: `--saveas z.ecproj` opened z.ecproj as the project and failed with an unrelated "cannot read" error. Options are now checked against the declared lists (VALUED and the new FLAGS) before anything runs; unknown ones are a usage error naming them (exit 2), and `--flag=value` on a flag says it takes no value. render-frame's `--transparent` (the MCP render_frame option) was one of the silently ignored options; it now keeps the frame's alpha. Tests: unknown_options_are_refused, every_option_read_is_declared (every option the code reads is declared, so none is refused), unknown_options_are_usage_errors (exit 2, nothing runs or renders, and --transparent renders alpha). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
2dda81c9bc
commit
50f26e6a47
+2
-1
@@ -430,7 +430,8 @@ that closes the dialog). File ▸ Scripts: `file.scripts.list`, `file.runScript
|
||||
|
||||
Each invocation runs a headless engine with no window. It opens the demo project unless you pass
|
||||
`--project F.ecproj`, a positional `*.ecproj` or `--empty`. Add `--json` for one compact JSON document
|
||||
on stdout. Errors print `{"error": ...}` and exit with status 1; usage errors exit with status 2.
|
||||
on stdout. Errors print `{"error": ...}` and exit with status 1; usage errors, such as an unknown
|
||||
option, exit with status 2 before anything runs.
|
||||
|
||||
```sh
|
||||
effectcraft-cli info --json
|
||||
|
||||
Reference in New Issue
Block a user