package args import ( "errors" "os" "git.trj.tw/golang/argparse" ) type Args struct { ConfigPath string DBTool bool Run string } var a *Args func Parse() error { a = &Args{} parser := argparse.New() parser.StringVar(&a.ConfigPath, "", "c", "config", "config file path", nil) parser.StringVar(&a.Run, "server", "r", "run", "run mode [server, dbtool], default server", nil) parser.BoolVar(&a.DBTool, false, "d", "dbtool", "run db migration", nil) parser.Help("h", "help") return parser.Parse(os.Args) } func Get() *Args { if a == nil { panic(errors.New("arguments not init")) } return a }