gestion-dns/helpers/config.go

46 lines
719 B
Go

package helpers
import (
"os"
"github.com/golobby/dotenv"
)
type Config struct {
DryRun bool `env:"DRY_RUN"`
Hetzner struct {
ApiToken string `env:"HETZNER_API_TOKEN"`
}
PushOver struct {
Enable bool `env:"PUSHOVER_ENABLE"`
AppKey string `env:"PUSHOVER_APP_KEY"`
UserKey string `env:"PUSHOVER_USER_KEY"`
}
}
var configParsed bool
var config Config
func GetConfig() (Config, error) {
if configParsed {
return config, nil
}
return parseConfig()
}
func parseConfig() (Config, error) {
file, err := os.Open(".env")
if err != nil {
return config, err
}
err = dotenv.NewDecoder(file).Decode(&config)
if err != nil {
return config, err
}
configParsed = true
return config, err
}