- Added sample default config (needs manual updating)

- Reworked service and webapi config to Viper unmarshalling
- Added Pretty Printers to config
This commit is contained in:
2021-08-22 14:46:48 +02:00
parent 9a31bbc912
commit 7b93ff425d
6 changed files with 54 additions and 12 deletions

View File

@ -1,11 +1,24 @@
package service
import "github.com/spf13/viper"
import (
"encoding/json"
"log"
"github.com/spf13/viper"
)
type config struct {
DNSServer string
DNSDefaultTTL uint32
UsersConfigDir string
DNS configDNS
Users configUsers
}
type configDNS struct {
Server string
DefaultTTL uint32
}
type configUsers struct {
ConfigDir string
}
var C config
@ -21,7 +34,13 @@ func SetConfigDefaults() {
}
func LoadConfig() {
C.DNSServer = viper.GetString("Service.DNS.Server")
C.DNSDefaultTTL = viper.GetUint32("Service.DNS.DefaultTTL")
C.UsersConfigDir = viper.GetString("Service.Users.ConfigDir")
viper.UnmarshalKey("Service", &C)
}
func (obj *config) PrettyPrint() string {
s, err := json.MarshalIndent(obj, "", " ")
if err != nil {
log.Fatalf("Failed to pretty print Service Config via JSON: %v", err)
}
return string(s)
}