added flags

This commit is contained in:
Hendrik Schlehlein 2019-01-31 22:07:07 +01:00
parent d1b9551889
commit cfde0fd79b

View file

@ -2,6 +2,7 @@ package config
import (
"encoding/json"
"flag"
"io/ioutil"
"log"
"os"
@ -47,6 +48,8 @@ func New() (*Config, error) {
jsonParser := json.NewDecoder(configFile)
jsonParser.Decode(&config)
config.overrideWithFlags()
return &config, nil
}
@ -75,3 +78,37 @@ func defaults() Config {
},
}
}
func (config *Config) overrideWithFlags() {
username := flag.String("ts3_name", "", "TS3Query username")
password := flag.String("ts3_pw", "", "TS3Query user password")
tsIP := flag.String("ts3_ip", "", "TS3 IP address")
tsPort := flag.Uint64("ts3_port", 65536, "TS3 port")
tsQuery := flag.Uint64("ts3_query", 65536, "TS3 query port")
webPort := flag.Uint64("web_port", 65536, "Webserver port")
flag.Parse()
if *username != "" {
config.User.Name = *username
}
if *password != "" {
config.User.Password = *password
}
if *tsIP != "" {
config.ServerTS.IP = *tsIP
}
if *tsPort <= 65535 {
config.ServerTS.PortServer = uint16(*tsPort)
}
if *tsQuery <= 65535 {
config.ServerTS.PortQuery = uint16(*tsQuery)
}
if *webPort <= 65535 {
config.ServerWeb.Port = uint16(*webPort)
}
}