yaml编程玩法(FauxCLI从给定的YAML)
yaml编程玩法(FauxCLI从给定的YAML)# OSX curl -s -o /usr/local/bin/fauxcli https://github.com/nextrevision/fauxcli/releases/download/1.0.0/fauxcli_darwin_amd64 # Linux curl -s -o /usr/local/bin/fauxcli https://github.com/nextrevision/fauxcli/releases/download/1.0.0/fauxcli_linux_amd64 chmod x /usr/local/bin/fauxclicli.yaml--- # (required) name of the command name: mycliapp # (required) the help text for the command (displayed with
FauxCLI (发音 foak-ley) 从给定的 YAML 文件模拟一个命令行客户端。
快速开始
安装:
$ go get github.com/nextrevision/fauxcli
在当前目录创建一个 cli.yaml
文件:
name: spiderpig help: does whatever a spiderpig does commands: - name: swing help: swings from a web output: | I can't do that I'm a pig! - name: plop help: super secret maneuver output: | Look out!
运行 fauxcli
:
$ fauxcli does whatever a spiderpig does Usage: spiderpig [command] Available Commands: swing swings from a web plop super secret maneuver Flags: -h --help help for spiderpig Use "spiderpig [command] --help" for more information about a command.
子命令:
$ fauxcli swing I can't do that I'm a pig!
别名:
$ alias spiderpig='fauxcli' $ spiderpig plop Look out!
安装
go:
go get github.com/nextrevision/fauxcli
使用 GitHub 版本:
# OSX curl -s -o /usr/local/bin/fauxcli https://github.com/nextrevision/fauxcli/releases/download/1.0.0/fauxcli_darwin_amd64 # Linux curl -s -o /usr/local/bin/fauxcli https://github.com/nextrevision/fauxcli/releases/download/1.0.0/fauxcli_linux_amd64 chmod x /usr/local/bin/fauxcli
cli.yaml
--- # (required) name of the command name: mycliapp # (required) the help text for the command (displayed with -h) help: does something cool # additional command aliases aliases: ["myapp" "app"] # output to print when the command is run # if this key is omitted the command will act as a # parent to any subcommands essentially doing nothing # but printing the help text output: | Hello World! # flags available to the command flags: # (required) long name of the flag (--debug) - name: debug # (required) help text for the flag help: enables debugging # short name for the flag (-d) short: d # default value of the flag default: false # make the flag globally available global: true # the type of the value (default string) # available types: # - string # - bool # - int # - float type: bool # subcommands (nested from all the options above) commands: - name: subcommand1 help: a subcommand flags: - name: upper help: converts output to uppercase short: u type: bool output: | {{ if .Flags.upper.Bool -}} HELLO FROM SC1! {{ else -}} Hello from SC1! {{ end -}} - name: subcommand2 help: another subcommand with children commands: - name: child1 help: the first child command output: | Hello from child1 - name: child2 help: the second child command output: | Hello from child2
FauxCLI 使用 Go 编写,托管在 GitHub:
微信订阅号:开源派 (opensourcepie)
↓点击阅读原文 查看相关链接