@@ -82,9 +82,9 @@ def _boolify_env(envvar: str) -> bool:
82
82
raise ValueError (f"can't coerce '{ val } ' to a boolean" )
83
83
84
84
85
- def _set_default_subparser (parser : argparse .ArgumentParser , name : str ) -> None :
85
+ def _set_default_verify_subparser (parser : argparse .ArgumentParser , name : str ) -> None :
86
86
"""
87
- An argparse patch for configuring a default subparser.
87
+ An argparse patch for configuring a default subparser for `sigstore verify` .
88
88
89
89
Adapted from <https://stackoverflow.com/a/26379693>
90
90
"""
@@ -100,11 +100,12 @@ def _set_default_subparser(parser: argparse.ArgumentParser, name: str) -> None:
100
100
if sp_name in sys .argv [1 :]:
101
101
subparser_found = True
102
102
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 )
108
109
109
110
110
111
def _add_shared_instance_options (group : argparse ._ArgumentGroup ) -> None :
@@ -357,7 +358,7 @@ def _parser() -> argparse.ArgumentParser:
357
358
358
359
# `sigstore verify` defaults to `sigstore verify identity`, for backwards
359
360
# compatibility.
360
- _set_default_subparser (verify , "identity" )
361
+ _set_default_verify_subparser (verify , "identity" )
361
362
362
363
# `sigstore get-identity-token`
363
364
get_identity_token = subcommands .add_parser ("get-identity-token" )
0 commit comments