Skip to content

Commit 397edc6

Browse files
committed
Read config from env
1 parent f0b9733 commit 397edc6

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

src/server/config.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type Config struct {
1515
JWTSecret string `json:"jwt_secret"`
1616
}
1717

18-
func LoadConfig(file string) *Config {
18+
func loadConfigFromFile(file string) *Config {
1919
data, err := os.ReadFile(file)
2020
if err != nil {
2121
log.Fatal("Failed to read config file", err)
@@ -29,3 +29,32 @@ func LoadConfig(file string) *Config {
2929

3030
return &config
3131
}
32+
33+
func getRequiredEnv(name string) string {
34+
env := os.Getenv(name)
35+
if len(env) < 1 {
36+
log.Fatal("Missing env variable", name)
37+
}
38+
return env
39+
}
40+
41+
func loadConfigFromEnv() *Config {
42+
config := &Config{
43+
PGConnectionString: getRequiredEnv("PG_CONNECTION_STRING"),
44+
SpotifyClientId: getRequiredEnv("SPOTIFY_CLIENT_ID"),
45+
SpotifyClientSecret: getRequiredEnv("SPOTIFY_CLIENT_SECRET"),
46+
ServiceUrl: getRequiredEnv("SERVICE_URL"),
47+
DiscogsAPIKey: getRequiredEnv("DISCOGS_API_KEY"),
48+
JWTSecret: getRequiredEnv("JWT_SECRET"),
49+
}
50+
51+
return config
52+
}
53+
54+
func LoadConfig(file string) *Config {
55+
if _, err := os.Stat(file); err == nil {
56+
return loadConfigFromFile(file)
57+
} else {
58+
return loadConfigFromEnv()
59+
}
60+
}

0 commit comments

Comments
 (0)