| | |
| | |
| | |
| |
|
| | 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"}) |
| |
|
| | |
| | |
| | |
| | |
| | } |
| |
|