package config import ( "os" "strconv" "github.com/joho/godotenv" "github.com/sirupsen/logrus" ) var Cfg Config type Config struct { Debug bool Host string Port string ManagementSystemApiKey string ScyllaDB ScyllaDB } type ScyllaDB struct { Host string Username string Password string Keyspace string } func LoadConfig() { // argument to start the server locally for development if len(os.Args) > 1 { if os.Args[1] == "--local" || os.Args[1] == "-l" { if err := godotenv.Load("local.env"); err != nil { logrus.Fatalln("Failed to load env, err:", err) } } } debug, err := strconv.ParseBool(os.Getenv("DEBUG")) if err != nil { logrus.Fatalln("Failed to parse boolean, err:", err) } cfg := Config{ Debug: debug, Host: os.Getenv("HOST"), Port: os.Getenv("PORT"), ManagementSystemApiKey: os.Getenv("MANAGEMENTSYSTEM_API_KEY"), ScyllaDB: ScyllaDB{ Host: os.Getenv("SCYLLADB_HOST"), Username: os.Getenv("SCYLLADB_USERNAME"), Password: os.Getenv("SCYLLADB_PASSWORD"), Keyspace: os.Getenv("SCYLLADB_KEYSPACE"), }, } Cfg = cfg }