【发布时间】:2021-11-15 07:16:52
【问题描述】:
是可能的,如果是这样的话,如何让Command 初始化一个资源并将其传递给它的Subcommands。想象一个接受它的参数的应用程序,比如
$ mycmd db --connect <...> create <...>
$ mycmd db --connect <...> update <...>
这可能不是一个很好的例子,但它说明了这个概念。这里db 是所有子命令所依赖的一些资源。我想要一个函数来负责db 资源的初始化,然后将初始化的资源传递给子命令。我不知道如何使用 urfave/cli/v2 来做到这一点。
您可以通过创建两个单独的cli.Apps 来做到这一点,一个解析参数的db 部分只是为了使用context.WithValue 创建一个context.Context,然后使用该上下文创建第二个cli.App这将解析其余的参数。我确信有更好的方法来做到这一点。
感谢您的帮助!
【问题讨论】: