diff --git a/env/env.go b/env/env.go index e64c949..84b564d 100644 --- a/env/env.go +++ b/env/env.go @@ -2,6 +2,10 @@ package env import ( "os" + "strings" + + "git.apinb.com/bsm-sdk/core/types" + "git.apinb.com/bsm-sdk/core/utils" ) func GetEnvDefault(key string, def string) string { @@ -11,3 +15,39 @@ func GetEnvDefault(key string, def string) string { } return value } + +var MeshEnv *types.MeshEnv = nil + +// get system env. +func NewEnv() *types.MeshEnv { + if MeshEnv == nil { + MeshEnv = &types.MeshEnv{ + Workspace: GetEnvDefault("BlocksMesh_Workspace", "def"), + JwtSecretKey: GetEnvDefault("BlocksMesh_JwtSecretKey", "Cblocksmesh2022C"), + RuntimeMode: strings.ToLower(GetEnvDefault("BlocksMesh_RuntimeMode", "dev")), + } + + if MeshEnv.RuntimeMode == "dev" { + MeshEnv.Prefix = GetEnvDefault("BlocksMesh_Prefix", utils.GetCurrentPath()) + } else { + MeshEnv.Prefix = GetEnvDefault("BlocksMesh_Prefix", "/usr/local/bsm") + } + } + return MeshEnv +} + +// get system base env. +func NewBaseEnv() *types.MeshEnv { + if MeshEnv == nil { + MeshEnv = &types.MeshEnv{ + RuntimeMode: strings.ToLower(GetEnvDefault("BlocksMesh_RuntimeMode", "dev")), + } + + if MeshEnv.RuntimeMode == "dev" { + MeshEnv.Prefix = GetEnvDefault("BlocksMesh_Prefix", utils.GetCurrentPath()) + } else { + MeshEnv.Prefix = GetEnvDefault("BlocksMesh_Prefix", "/usr/local/bsm") + } + } + return MeshEnv +} diff --git a/types/env.go b/types/env.go index a3a4751..156f08b 100644 --- a/types/env.go +++ b/types/env.go @@ -6,3 +6,10 @@ const ( Run_Time_Mode_Pre Run_Time_Mode_Product ) + +type MeshEnv struct { + Workspace string // MESH workspace,default:bsm + Prefix string // MESH prefix,default:/usr/local/mesh/ + JwtSecretKey string // jwt Secret Key,default: + RuntimeMode string // Runtime Mode String: dev/test/pre/product +}