81 lines
1.4 KiB
Go
81 lines
1.4 KiB
Go
package env
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
var (
|
|
active Environment
|
|
dev Environment = &environment{value: "dev"} //开发环境
|
|
fat Environment = &environment{value: "fat"} //测试环境
|
|
uat Environment = &environment{value: "uat"} //预上线环境
|
|
pro Environment = &environment{value: "pro"} //正式环境
|
|
)
|
|
|
|
var _ Environment = (*environment)(nil)
|
|
|
|
// Environment 环境配置
|
|
type Environment interface {
|
|
Value() string
|
|
IsDev() bool
|
|
IsFat() bool
|
|
IsUat() bool
|
|
IsPro() bool
|
|
t()
|
|
}
|
|
|
|
type environment struct {
|
|
value string
|
|
}
|
|
|
|
func (e *environment) Value() string {
|
|
return e.value
|
|
}
|
|
|
|
func (e *environment) IsDev() bool {
|
|
return e.value == "dev"
|
|
}
|
|
|
|
func (e *environment) IsFat() bool {
|
|
return e.value == "fat"
|
|
}
|
|
|
|
func (e *environment) IsUat() bool {
|
|
return e.value == "uat"
|
|
}
|
|
|
|
func (e *environment) IsPro() bool {
|
|
return e.value == "pro"
|
|
}
|
|
|
|
func (e *environment) t() {}
|
|
|
|
func Set(env string) error {
|
|
var err error
|
|
|
|
switch strings.ToLower(strings.TrimSpace(env)) {
|
|
case "dev":
|
|
active = dev
|
|
case "fat":
|
|
active = fat
|
|
case "uat":
|
|
active = uat
|
|
case "pro":
|
|
active = pro
|
|
default:
|
|
err = fmt.Errorf("'%s' cannot be found, or it is illegal. enum:dev(开发环境),fat(测试环境),uat(预上线环境),pro(正式环境)", env)
|
|
}
|
|
|
|
return err
|
|
}
|
|
|
|
// Active 当前配置的env
|
|
func Active() Environment {
|
|
if active == nil {
|
|
fmt.Println("Warning: environment not set. The default 'dev' will be used.")
|
|
active = dev
|
|
}
|
|
return active
|
|
}
|