有什么方法可以指示临时命令(通过文件或 API 读取)?
例如,这是一个示例命令
$ my-command
Usage: my-command [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
create Create item
delete Delete item
get Get item
当我跑步时
$ my-command google.com open
我想让它打开 google.com 页面。但目前它返回
No such command 'google.com'
,正如预期的那样。
我尝试过使用
Command Aliases
模式,
class AliasedGroup(click.Group):
def get_command(self, ctx, cmd_name):
rv = click.Group.get_command(self, ctx, cmd_name)
if rv is not None:
return rv
matches = [x for x in self.list_commands(ctx)
if x.startswith(cmd_name)]
if not matches:
return None
elif len(matches) == 1:
return click.Group.get_command(self, ctx, matches[0])
ctx.fail(f"Too many matches: {', '.join(sorted(matches))}")
def resolve_command(self, ctx, args):
# always return the full command name
_, cmd, args = super().resolve_command(ctx, args)
return cmd.name, cmd, args
但是在
get_command
我无法获得参数数据。
这有一些有用的模式吗?