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
  • 可以使用环境变量定义一些配置文件