package configserver import ( "fmt" "io" "log" "os" "github.com/pelletier/go-toml/v2" ) type AppConfig struct { API struct { Domain string Port string Https bool } Frontend struct { Domain string Port string Https bool } OAuth struct { ClientID string ClientSecret string } } func (config AppConfig) GetAPIRootDomain() string { protocol := "http://" if config.API.Https { protocol = "https://" } log.Println(config.API) return fmt.Sprintf("%s%s:%s/", protocol, config.API.Domain, config.API.Port) } func (config AppConfig) GetFrontendRootDomain() string { protocol := "http://" if config.Frontend.Https { protocol = "https://" } log.Println(config.Frontend) return fmt.Sprintf("%s%s:%s/", protocol, config.Frontend.Domain, config.Frontend.Port) } func (config *AppConfig) ParseConfig(configPath string) { configFile, err := os.Open(configPath) if err != nil { log.Fatal(err) } configFileContent, err := io.ReadAll(configFile) if err != nil { log.Fatal(err) } err = toml.Unmarshal(configFileContent, &config) if err != nil { log.Fatal(err) } }