description
_parse_integration_options in src/specify_cli/integrations/_helpers.py calls shlex.split(raw_options) unguarded. an unbalanced quote in the flag value (e.g. --integration-options='--commands-dir "foo') makes shlex raise ValueError: No closing quotation, so a raw traceback escapes instead of the clean typer.Exit(1) error every other bad-input path in this function produces (unknown option, missing value, unexpected value all print a message and exit 1).
reachable from specify init --integration-options=... and every specify integration install/switch/upgrade/migrate --integration-options=....
repro:
specify integration install generic --integration-options='--commands-dir "foo'
# ValueError: No closing quotation (raw traceback)
expected: a clean one-line error and exit 1, like a mistyped option name already gives.
note: i used an ai assistant to help investigate and write this up.
description
_parse_integration_optionsinsrc/specify_cli/integrations/_helpers.pycallsshlex.split(raw_options)unguarded. an unbalanced quote in the flag value (e.g.--integration-options='--commands-dir "foo') makes shlex raiseValueError: No closing quotation, so a raw traceback escapes instead of the cleantyper.Exit(1)error every other bad-input path in this function produces (unknown option, missing value, unexpected value all print a message and exit 1).reachable from
specify init --integration-options=...and everyspecify integration install/switch/upgrade/migrate --integration-options=....repro:
expected: a clean one-line error and exit 1, like a mistyped option name already gives.
note: i used an ai assistant to help investigate and write this up.