init
This commit is contained in:
40
internal/server/config.go
Normal file
40
internal/server/config.go
Normal file
@@ -0,0 +1,40 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user