function callbacks
を使えばOK。
main.go
package main
import (
"fmt"
"os"
"github.com/jessevdk/go-flags"
)
func main() {
var opts struct {
Version func() `short:"v" long:"version" description:"show version"`
Message string `short:"m" long:"message" description:"a message"`
}
opts.Version = func() {
fmt.Println("1.1.1-RC1")
os.Exit(0)
}
_, err := flags.Parse(&opts)
if err == nil {
fmt.Printf("message : %s\n", opts.Message)
}
}
$ go run main.go --help
Usage:
main [OPTIONS]
Application Options:
-v, --version show version
-m, --message= a message
Help Options:
-h, --help Show this help message
$ go run main.go --version
1.1.1-RC1
$ go run main.go --message hello
message : hello
go-flags超便利。