package main import ( "flag" "os" ) type Config struct { Port int Root string } func NewConfig() (Config, error) { var c Config fs := flag.NewFlagSet(os.Args[0], flag.ContinueOnError) fs.IntVar(&c.Port, "p", 8080, "port") fs.StringVar(&c.Root, "r", "/tmp/", "static file root") err := fs.Parse(os.Args[1:]) return c, err }