首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Environment 运行环境枚举类型
|
||||
type Environment string
|
||||
|
||||
const (
|
||||
EnvDev Environment = "dev"
|
||||
EnvTest Environment = "test"
|
||||
EnvProd Environment = "prod"
|
||||
)
|
||||
|
||||
// 合法环境白名单
|
||||
var validEnvs = map[Environment]bool{
|
||||
EnvDev: true,
|
||||
EnvTest: true,
|
||||
EnvProd: true,
|
||||
}
|
||||
|
||||
func (e *Environment) Set(s string) error {
|
||||
env := Environment(strings.ToLower(s))
|
||||
if !validEnvs[env] {
|
||||
return fmt.Errorf("无效运行环境,仅支持 dev/test/prod")
|
||||
}
|
||||
*e = env
|
||||
return nil
|
||||
}
|
||||
|
||||
func (e *Environment) String() string {
|
||||
if *e == "" {
|
||||
return string(EnvDev)
|
||||
}
|
||||
return string(*e)
|
||||
}
|
||||
|
||||
func (e *Environment) Get() any {
|
||||
return *e
|
||||
}
|
||||
|
||||
func main() {
|
||||
var env Environment = EnvDev // 默认值为 dev
|
||||
flag.Var(&env, "env", "运行环境:dev/test/prod")
|
||||
flag.Parse()
|
||||
|
||||
fmt.Printf("当前运行环境:%s\n", env)
|
||||
}
|
||||
Reference in New Issue
Block a user