package main import ( "flag" "os" ) // flagSet wraps flag.FlagSet so subcommands report errors instead of exiting, // which keeps error handling in one place in run(). type flagSet struct{ fs *flag.FlagSet } func newStdFlagSet(name string) *flag.FlagSet { fs := flag.NewFlagSet(name, flag.ContinueOnError) fs.SetOutput(os.Stderr) return fs } func (f *flagSet) String(name, value, usage string) *string { return f.fs.String(name, value, usage) } func (f *flagSet) Bool(name string, value bool, usage string) *bool { return f.fs.Bool(name, value, usage) } func (f *flagSet) Int(name string, value int, usage string) *int { return f.fs.Int(name, value, usage) } func (f *flagSet) Parse(args []string) error { return f.fs.Parse(args) }