Files
Gelvin/config/environment.go
2022-09-30 14:59:51 -05:00

52 lines
838 B
Go

package config
import (
"gelvin/app/application"
"os"
)
const EnvPrefix = "GELVIN_"
type environment struct {
Mode application.Mode
UrlRoot string
Version application.Version
}
func Environment() environment {
var mode application.Mode
switch getEnv("MODE") {
case "TEST":
mode = application.Test
case "PRODUCTION":
mode = application.Production
default:
mode = application.Debug
}
var urlRoot string
if urlRoot = getEnv("URL_ROOT"); urlRoot == "" {
urlRoot = "/"
}
version := parseVersion(getEnv("API_VERSION"))
return environment{
Mode: mode,
UrlRoot: urlRoot,
Version: version,
}
}
func getEnv(key string) string {
return os.Getenv(EnvPrefix + key)
}
func parseVersion(s string) application.Version {
version := application.Version{Major: 1}
if s != "" {
// TODO
}
return version
}