package server import ( "flag" "fmt" ) type config struct { baseURL string httpAddr string dsn string logLevel string } const ( version = "0.0.1" defaultBaseURL = "https://localhost" defaultHTTPAddr = "localhost:6300" //defaultDSN = "mysql://gopics2:gopics2@/gopics2?parseTime=true" defaultDSN = "sqlite://gopics.db" ) //TODO : create load from file, load order : file -> flags func parseCfg() (config, error) { var cfg config flag.StringVar(&cfg.baseURL, "base-url", defaultBaseURL, "base URL for the application") flag.StringVar(&cfg.httpAddr, "http-address", defaultHTTPAddr, "IP:PORT to listen on for HTTP requests") flag.StringVar(&cfg.dsn, "dsn", defaultDSN, "MySQL data source name") showVersion := flag.Bool("version", false, "display version and exit") flag.Parse() if *showVersion { fmt.Printf("version: %s\n", version) return cfg, nil } cfg.logLevel = "Debug" return cfg, nil }