micrach/config/config.go

61 lines
855 B
Go
Raw Normal View History

2021-08-26 16:16:50 +03:00
package config
import (
"fmt"
"os"
"strconv"
)
type AppConfig struct {
2021-09-08 15:36:13 +03:00
Env string
Port int
SeedDb bool
2021-08-26 16:16:50 +03:00
}
type DbConfig struct {
Url string
}
func getAppConfig() AppConfig {
env := os.Getenv("ENV")
if env == "" {
env = "release"
}
portString := os.Getenv("PORT")
if portString == "" {
portString = "3000"
}
port, err := strconv.Atoi(portString)
if err != nil {
panic(fmt.Sprintf("Could not parse %s to int", portString))
}
2021-09-08 15:36:13 +03:00
seedDbString := os.Getenv("SEED_DB")
seedDb := seedDbString == "true"
2021-08-26 16:16:50 +03:00
return AppConfig{
2021-09-08 15:36:13 +03:00
Env: env,
Port: port,
SeedDb: seedDb,
2021-08-26 16:16:50 +03:00
}
}
func getDbConfig() DbConfig {
url := os.Getenv("POSTGRES_URL")
if url == "" {
2021-08-26 17:32:19 +03:00
url = "postgresql://localhost/micrach"
2021-08-26 16:16:50 +03:00
}
return DbConfig{
Url: url,
}
}
var App AppConfig
var Db DbConfig
func Init() {
App = getAppConfig()
Db = getDbConfig()
}