12 Factor CLI Apps
本文在推广一种写命令行工具的方法论 - 12 Factor CLI Apps.
- 提供
-h/--help
/ shell completion - 优先使用 flags,而不是 args;flags 也有利于 autocomplete;对于要把参数传给子进程的命令,可以用
--
分隔开本命令和子进程要用的参数。 - 提供
version
,--version
,-V
- 区分开 stdout 和 stderr
- 出错时可以提供更多有用信息:error code,error title,error description,how to fix the error,还有 url; 可以在 DEBUG 模式把更多信息打出来。
- 打出颜色,进度条,但也支持 NO_PROGRESS, NO_COLOR
- 没给参数的时候可以进入交互模式让用户填参数
- 打印表格
- 快速启动
- 使用子命令
$ cmd subcommand
- 可以使用环境变量定义一些配置文件