package env import ( "os" "path/filepath" "strings" "git.apinb.com/bsm-sdk/core/types" "git.apinb.com/bsm-sdk/core/utils" ) var Runtime *types.RuntimeEnv = nil // get system env. func NewEnv() *types.RuntimeEnv { if Runtime == nil { Runtime = &types.RuntimeEnv{ Workspace: GetEnvDefault("BSM_Workspace", "def"), JwtSecretKey: GetEnvDefault("BSM_JwtSecretKey", "Cblocksmesh2022C"), Mode: strings.ToLower(GetEnvDefault("BSM_RuntimeMode", "dev")), LicencePath: strings.ToLower(GetEnvDefault("BSM_Licence", "")), } if Runtime.Mode == "dev" { Runtime.Prefix = GetEnvDefault("BSM_Prefix", utils.GetCurrentPath()) } else { Runtime.Prefix = GetEnvDefault("BSM_Prefix", "/usr/local/bsm") } if Runtime.LicencePath == "" { Runtime.LicencePath = filepath.Join(Runtime.Prefix, "etc") } } return Runtime } func GetEnvDefault(key string, def string) string { value := os.Getenv(key) if value == "" { return def } return value }