41 lines
941 B
Go
41 lines
941 B
Go
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
|
|
}
|