Rssmon2/config/config.go

43 lines
775 B
Go

package config
import (
"flag"
"os"
"strings"
)
const cdbpath = "DBPath"
const port = "port"
const mport = "mport"
const fport = "fport"
type Config struct {
DBPath string
Port string
MonitorPort string
FetchPort string
}
func New() *Config {
lookups := make(map[string]*string)
add(cdbpath, "./db", lookups)
add(port, ":9101", lookups)
add(mport, ":9102", lookups)
add(fport, ":9103", lookups)
flag.Parse()
return &Config{
DBPath: *lookups[cdbpath],
Port: *lookups[port],
MonitorPort: *lookups[mport],
FetchPort: *lookups[fport],
}
}
func add(key string, value string, lookups map[string]*string) {
env := os.Getenv(strings.ToUpper(key))
if env != "" {
value = env
}
lookups[key] = flag.String(key, value, "")
}