| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package cmdflag_test
- import (
- "flag"
- "fmt"
- "os"
- "github.com/pierrec/lz4/internal/cmdflag"
- )
- func ExampleParse() {
- // Declare the `split` cmdflag.
- cmdflag.New(
- "split",
- "argsdesc",
- "desc",
- flag.ExitOnError,
- func(fs *flag.FlagSet) cmdflag.Handler {
- // Declare the cmdflag specific flags.
- var s string
- fs.StringVar(&s, "s", "", "string to be split")
- // Return the handler to be executed when the cmdflag is found.
- return func(...string) error {
- i := len(s) / 2
- fmt.Println(s[:i], s[i:])
- return nil
- }
- })
- // The following is only used to emulate passing command line arguments to `program`.
- // It is equivalent to running:
- // ./program split -s hello
- args := os.Args
- defer func() { os.Args = args }()
- os.Args = []string{"program", "split", "-s", "hello"}
- // Process the command line arguments.
- if err := cmdflag.Parse(); err != nil {
- panic(err)
- }
- // Output:
- // he llo
- }
|