Skip to content

Commit 769bafd

Browse files
committed
_cli: hackety hack
Signed-off-by: William Woodruff <[email protected]>
1 parent 9d92fbe commit 769bafd

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

sigstore/_cli.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ def _boolify_env(envvar: str) -> bool:
8282
raise ValueError(f"can't coerce '{val}' to a boolean")
8383

8484

85-
def _set_default_subparser(parser: argparse.ArgumentParser, name: str) -> None:
85+
def _set_default_verify_subparser(parser: argparse.ArgumentParser, name: str) -> None:
8686
"""
87-
An argparse patch for configuring a default subparser.
87+
An argparse patch for configuring a default subparser for `sigstore verify`.
8888
8989
Adapted from <https://stackoverflow.com/a/26379693>
9090
"""
@@ -100,11 +100,12 @@ def _set_default_subparser(parser: argparse.ArgumentParser, name: str) -> None:
100100
if sp_name in sys.argv[1:]:
101101
subparser_found = True
102102
if not subparser_found:
103-
# NOTE: We expect the default subparser to take exactly one
104-
# positional argument (e.g. `sigstore verify identity foo.txt`), so
105-
# we insert the subparser's name right before that positional should
106-
# appear.
107-
sys.argv.insert(len(sys.argv) - 1, name)
103+
# If `sigstore verify identity` wasn't passed explicitly, we need
104+
# to insert the `identity` subcommand into the correct position
105+
# within `sys.argv`. To do that, we get the index of the `verify`
106+
# subcommand, and insert it directly after it.
107+
verify_idx = sys.argv.index("verify")
108+
sys.argv.insert(verify_idx + 1, name)
108109

109110

110111
def _add_shared_instance_options(group: argparse._ArgumentGroup) -> None:
@@ -357,7 +358,7 @@ def _parser() -> argparse.ArgumentParser:
357358

358359
# `sigstore verify` defaults to `sigstore verify identity`, for backwards
359360
# compatibility.
360-
_set_default_subparser(verify, "identity")
361+
_set_default_verify_subparser(verify, "identity")
361362

362363
# `sigstore get-identity-token`
363364
get_identity_token = subcommands.add_parser("get-identity-token")

0 commit comments

Comments
 (0)