52 lines
838 B
Go
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
|
|
}
|