| |
| |
| |
|
|
| package flag_test |
|
|
| import ( |
| "flag" |
| "fmt" |
| "time" |
| ) |
|
|
| func ExampleFlagSet() { |
|
|
| start := func(args []string) { |
| |
| fs := flag.NewFlagSet("start", flag.ContinueOnError) |
| addr := fs.String("addr", ":8080", "`address` to listen on") |
| if err := fs.Parse(args); err != nil { |
| fmt.Printf("error: %s", err) |
| return |
| } |
| fmt.Printf("starting server on %s\n", *addr) |
| } |
|
|
| stop := func(args []string) { |
| fs := flag.NewFlagSet("stop", flag.ContinueOnError) |
| timeout := fs.Duration("timeout", time.Second, "stop timeout duration") |
| if err := fs.Parse(args); err != nil { |
| fmt.Printf("error: %s", err) |
| return |
| } |
| fmt.Printf("stopping server (timeout=%v)\n", *timeout) |
| } |
|
|
| main := func(args []string) { |
| subArgs := args[2:] |
| switch args[1] { |
| case "start": |
| start(subArgs) |
| case "stop": |
| stop(subArgs) |
| default: |
| fmt.Printf("error: unknown command - %q\n", args[1]) |
| |
| } |
| } |
|
|
| main([]string{"httpd", "start", "-addr", ":9999"}) |
| main([]string{"httpd", "stop"}) |
| main([]string{"http", "start", "-log-level", "verbose"}) |
|
|
| |
| |
| |
| |
| } |
|
|