urfave-cli
项目地址:https://github.com/urfave/cli
urfave-cli 和 cobra 在实现上不尽相同,它们都是用 go 实现的命令行工具,但是在使用方法上存在些许差异,我个人还是倾向于 cobra 一些,因为它在结构上将应用程序代码和库的代码分开,使整个框架更易维护和阅读。
官方文档在这里Getting Started - urfave/cli,个人建议在没有特殊要求的情况下,只看 v2 版本就行了。
本人在阅读的时候产生了一个 puzzle ,即在 Flags 中介绍 Values from files
(从文件中取值)的时候,它提到:
其大意是从文件(例如 FilePath
)设置的默认值优先于从环境(例如 EnvVar
)设置的默认值。
而在 Flags 的末尾 当它对 Precedence(优先级)进行总结的时候又提到:
即标志值源的优先级如下(从高到低):
- 来自用户的命令行标志值
- 环境变量(如果指定)
- 配置文件(如果指定)
- 标志上定义的默认值
很明显这两者是冲突的,介于过去几日发生的种种,我也没心情对其去做验证了,实操过的朋友可以在下面留个言,我在后面看到了会加进去。
Comments
Comment plugin failed to load
Loading comment plugin