FauxCLI:从给定的 YAML 文件模拟命令行客户端
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
发表回复