Files
LargeHadronCollider/util/conf.go

55 lines
855 B
Go

package util
import (
"errors"
"os"
"strings"
"github.com/joho/godotenv"
)
func LoadConfig() (*Config, error) {
config := Config{}
err := config.loadEnv()
if err != nil {
return nil, err
}
// other sources?
config.verify()
return &config, nil
}
type Config struct {
ClientID string
RedirectURI string
}
func (c *Config) loadEnv() error {
err := godotenv.Load()
if err != nil {
return err
}
if str, found := os.LookupEnv("CLIENT_ID"); found {
c.ClientID = strings.TrimSpace(str)
}
if str, found := os.LookupEnv("REDIR_URI"); found {
c.RedirectURI = strings.TrimSpace(str)
}
return nil
}
func (c *Config) verify() error {
if c.ClientID == "" {
return errors.New("unable to load a configured Client ID")
}
if c.RedirectURI == "" {
return errors.New("unable to load a configured Redirect URI")
}
return nil
}