Files
2025-04-25 11:20:31 +03:00

57 lines
903 B
Go

package app
import (
"os"
)
type AppEnvType int
type AppEnvName string
const (
AppEnvTypeDevelopment AppEnvType = iota
AppEnvTypeStaging
AppEnvTypeProduction
)
func (app AppEnvType) String() string {
switch app {
case AppEnvTypeDevelopment:
return "development"
case AppEnvTypeStaging:
return "staging"
case AppEnvTypeProduction:
return "production"
default:
return "unknown"
}
}
var (
knownEnvTypeEnvs = []string{
"UNIVERSE_ENV",
"APP_ENV",
}
)
func provideEnv() AppEnvType {
for _, envType := range knownEnvTypeEnvs {
value := os.Getenv(envType)
if value == "" {
continue
}
switch envType {
case "development", "dev", "devel":
return AppEnvTypeDevelopment
case "staging", "test":
return AppEnvTypeStaging
case "production", "prod":
return AppEnvTypeProduction
default:
return AppEnvTypeDevelopment
}
}
return AppEnvTypeDevelopment
}