v1 先简单run 一下
package main
import (
"fmt"
"github.com/urfave/cli"
"os"
)
func main() {
app := cli.App{
Action: func(c *cli.Context) {
fmt.Println("hello")
},
}
app.Run(os.Args)
}
Action 是一个 interface{}
v2 将Action 处的匿名函数拆出来
package main
import (
"fmt"
"os"
"github.com/urfave/cli"
)
func main() {
app := cli.App{
Action: run,
}
app.Run(os.Args)
}
func run(c *cli.Context) {
fmt.Println("hello")
}
v3 添加一个flag
package main
import (
"fmt"
"github.com/urfave/cli"
"os"
)
type Config struct {
username string
}
var config Config
func main() {
app := cli.NewApp()
app.Action = run
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "username,u",
Usage: "user account",
},
}
app.Run(os.Args)
}
func run(c *cli.Context) {
config = Config{
username: c.String("username"),
}
fmt.Println("你输入的用户名是:",config.username)
}
-u 即为选项
孙悟空 即为选项 -u 的参数