Documentation
¶
Overview ¶
XEnv 提供了应用程序的环境管理,支持多平台识别、路径管理、命令行参数解析和环境变量求值等功能。
功能特性
- 命令行参数:支持 --key=value 和 --key value 格式的命令行参数解析
- 环境配置:支持应用类型、运行模式、版本等环境配置
- 变量求值:支持 ${Environment.Key} 格式的环境变量引用和求值
- 路径管理:提供本地路径和资产路径的统一管理
使用手册
1. 命令行参数
1.1 参数解析
// 命令行:./app --config=dev.json --port 8080
config := XEnv.GetArg("config") // 返回 "dev.json"
port := XEnv.GetArg("port") // 返回 "8080"
// 获取所有参数
args := XEnv.GetArgs() // 返回参数 map
2. 环境配置
2.1 应用类型
// 获取应用类型和运行模式 appType := XEnv.App() // 返回 Server/Client appMode := XEnv.Mode() // 返回 Dev/Test/Staging/Prod version := XEnv.Version() // 返回应用版本
2.2 项目信息
// 获取项目相关信息 solution := XEnv.Solution() // 返回解决方案名称 project := XEnv.Project() // 返回项目名称 product := XEnv.Product() // 返回产品名称 channel := XEnv.Channel() // 返回渠道名称
3. 变量求值
3.1 内置变量
// 获取应用信息
app := XEnv.Instance().Eval("${Environment.App}") // 获取应用类型
mode := XEnv.Instance().Eval("${Environment.Mode}") // 获取运行模式
platform := XEnv.Instance().Eval("${Environment.Platform}") // 获取运行平台
// 获取路径信息
localPath := XEnv.Instance().Eval("${Environment.LocalPath}") // 获取本地路径
assetPath := XEnv.Instance().Eval("${Environment.AssetPath}") // 获取资产路径
3.2 参数引用
// 获取命令行参数
config := XEnv.Instance().Eval("${Environment.config}") // 获取 --config 的值
// 获取系统环境变量
path := XEnv.Instance().Eval("${Environment.PATH}") // 获取系统 PATH 变量
3.3 特殊处理
// 嵌套变量
value := XEnv.Instance().Eval("${Environment.${Environment.KEY}}") // 返回 "(Nested)"
// 循环引用
value := XEnv.Instance().Eval("${Environment.A${Environment.B}}") // 返回 "(Recursive)"
// 未知变量
value := XEnv.Instance().Eval("${Environment.UNKNOWN}") // 返回 "(Unknown)"
4. 路径管理
4.1 本地路径
// 获取本地数据路径(自动创建目录) localPath := XEnv.LocalPath() // 返回规范化的本地路径
4.2 资产路径
// 获取资产文件路径 assetPath := XEnv.AssetPath() // 返回规范化的资产路径
更多信息请参考模块文档。
Index ¶
- Constants
- Variables
- func App() string
- func AssetPath() string
- func Author() string
- func Channel() string
- func GetArg(key string) string
- func GetArgs() map[string]string
- func Instance() *environment
- func LocalPath() string
- func Mode() string
- func Platform() string
- func Product() string
- func Project() string
- func Remote() string
- func Secret() string
- func Solution() string
- func Version() string
Constants ¶
View Source
const ( // ModeUnknown 表示未知的运行模式。 ModeUnknown = "Unknown" // ModeDev 表示开发环境。 ModeDev = "Dev" // ModeTest 表示测试环境。 ModeTest = "Test" // ModeStaging 表示预发布环境。 ModeStaging = "Staging" // ModeProd 表示生产环境。 ModeProd = "Prod" )
View Source
const ( // AppUnknown 表示未知的应用类型。 AppUnknown = "Unknown" // AppServer 表示服务器应用。 AppServer = "Server" // AppClient 表示客户端应用。 AppClient = "Client" )
View Source
const ( // PlatformUnknown 表示未知的运行平台。 PlatformUnknown = "Unknown" // PlatformWindows 表示 Windows 平台。 PlatformWindows = "Windows" // PlatformLinux 表示 Linux 平台。 PlatformLinux = "Linux" // PlatformOSX 表示 macOS 平台。 PlatformOSX = "OSX" // PlatformAndroid 表示 Android 平台。 PlatformAndroid = "Android" // PlatformiOS 表示 iOS 平台。 PlatformiOS = "iOS" // PlatformBrowser 表示浏览器平台。 PlatformBrowser = "Browser" )
View Source
const ( // PreferencesApp 应用类型的配置键。 PreferencesApp = "XEnv/App" // PreferencesAppDefault 应用类型的默认值。 PreferencesAppDefault = AppServer // PreferencesMode 运行模式的配置键。 PreferencesMode = "XEnv/Mode" // PreferencesModeDefault 运行模式的默认值。 PreferencesModeDefault = ModeDev // PreferencesSolution 解决方案的配置键。 PreferencesSolution = "XEnv/Solution" // PreferencesSolutionDefault 解决方案的默认值。 PreferencesSolutionDefault = "Unknown" // PreferencesProject 项目的配置键。 PreferencesProject = "XEnv/Project" // PreferencesProjectDefault 项目的默认值。 PreferencesProjectDefault = "Unknown" // PreferencesProduct 产品的配置键。 PreferencesProduct = "XEnv/Product" // PreferencesProductDefault 产品的默认值。 PreferencesProductDefault = "Unknown" // PreferencesChannel 渠道的配置键。 PreferencesChannel = "XEnv/Channel" // PreferencesChannelDefault 渠道的默认值。 PreferencesChannelDefault = "Default" // PreferencesVersion 版本的配置键。 PreferencesVersion = "XEnv/Version" // PreferencesVersionDefault 版本的默认值。 PreferencesVersionDefault = "0.0.0" // PreferencesAuthor 作者的配置键。 PreferencesAuthor = "XEnv/Author" // PreferencesSecret 密钥的配置键。 PreferencesSecret = "XEnv/Secret" // PreferencesRemote 远端配置的配置键。 PreferencesRemote = "XEnv/Remote" // PreferencesRemoteDefault 远端配置的默认值。 PreferencesRemoteDefault = "" /* 137-byte string literal not displayed */ )
Variables ¶
View Source
var ( // PreferencessAuthorDefault 作者的默认值。 // 默认使用当前系统用户名。 PreferencessAuthorDefault = func() string { data, err := user.Current() if err != nil { return "Unknown" } username := data.Username if i := strings.LastIndex(username, "\\"); i >= 0 { return username[i+1:] } if i := strings.LastIndex(username, "/"); i >= 0 { return username[i+1:] } return username }() // PreferencesSecretDefault 密钥的默认值。 // 默认生成 8 位随机字符串。 PreferencesSecretDefault = XString.Random("N")[:8] )
Functions ¶
func AssetPath ¶
func AssetPath() string
AssetPath 返回资产文件存储路径。 该路径用于存储应用程序的资产文件(如图片、配置等)。 路径特点:
- 自动转换为绝对路径
- 统一使用斜杠(/)作为分隔符
返回值:
- string:规范化后的资产文件路径
如果路径无效,将会触发 panic。
func GetArg ¶
GetArg 获取命令行参数值。 参数 key 是要查找的参数名。 格式:--key=value 或 --key value,例如:--config=dev.json 或 --config dev.json 如果参数不存在,返回空字符串。
func GetArgs ¶
GetArgs 获取所有命令行参数作为键值对映射。 格式:--key1=value1 --key2 value2 返回参数名到参数值的映射。 该函数是线程安全的,确保参数只被解析一次。
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.