2026-09-04 02:26:23 +02:00
|
|
|
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) }
|
2026-09-04 03:00:17 +02:00
|
|
|
func (f *flagSet) Float64(name string, value float64, usage string) *float64 {
|
|
|
|
|
return f.fs.Float64(name, value, usage)
|
|
|
|
|
}
|
|
|
|
|
func (f *flagSet) Parse(args []string) error { return f.fs.Parse(args) }
|