Documentation
¶
Overview ¶
Package fsenv 提供应用的基本环境信息
Index ¶
- func AppRootDir() string
- func ConfRootDir() string
- func DataRootDir() string
- func IDC() string
- func LoadEnvFile(fn string) error
- func LogRootDir() string
- func MustLoadEnvFile(fn string)
- func ParserEnvContent(content []byte) (map[string]string, error)
- func ParserEnvFile(fn string) (map[string]string, error)
- func RootDir() string
- func SetConfRootDir(dir string)
- func SetDataRootDir(dir string)
- func SetIDC(idc string)
- func SetLogRootDir(dir string)
- func SetRootDir(dir string)
- func SetRunMode(mode Mode)
- type AppConfEnv
- type AppDataEnv
- type AppEnv
- type AppEnvRW
- type AppIDCEnv
- type AppLogEnv
- type AppRootEnv
- type AppRunMode
- type CanSetAppEnv
- type CanSetConfRootDir
- type CanSetDataRootDir
- type CanSetIDC
- type CanSetLogRootDir
- type CanSetRootDir
- type CanSetRunMode
- type HasAppEnv
- type HasConfRootDir
- type HasDataRootDir
- type HasIDC
- type HasLogRootDir
- type HasRootDir
- type HasRunMode
- type Mode
- type Value
- type WithAppEnv
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppRootDir ¶
func AppRootDir() string
AppRootDir 自动推断、获取应用根目录
推断顺序: 1. 环境变量:fsenv.root 2. 查找 go.mod 文件 3. 当前目录(pwd)
func ConfRootDir ¶
func ConfRootDir() string
ConfRootDir (全局)获取应用配置根目录
若没有设置值,会尝试从环境变量 fsenv.conf 读取值 默认值 RootDir()/conf
Example ¶
package main import ( "fmt" "path/filepath" "github.com/fsgo/fsenv" ) func main() { dir := fsenv.ConfRootDir() fmt.Println("conf root dir=", dir) // 输出 {xxx}/conf dbUserConfPath := filepath.Join(fsenv.ConfRootDir(), "db", "db_user.toml") fmt.Println("db user confPath=", dbUserConfPath) // 输出 {xxx}/conf/db/db_user.toml }
Output:
func DataRootDir ¶
func DataRootDir() string
DataRootDir (全局)设置应用数据根目录
若没有设置值,会尝试从环境变量 fsenv.data 读取值 默认值 RootDir()/data
Example ¶
package main import ( "fmt" "github.com/fsgo/fsenv" ) func main() { dir := fsenv.DataRootDir() fmt.Println("data root dir=", dir) // 输出 {xxx}/data }
Output:
func IDC ¶ added in v0.2.0
func IDC() string
IDC (全局)获取应用的 IDC
若没有设置值,会尝试从环境变量 fsenv.idc 读取值 默认值为 test
func LoadEnvFile ¶ added in v0.3.0
LoadEnvFile 加载一个 env 文件到 os.env 里
func LogRootDir ¶
func LogRootDir() string
LogRootDir (全局)获取应用日志根目录
若没有设置值,会尝试从环境变量 fsenv.root 读取值 默认值 RootDir()/log
Example ¶
package main import ( "fmt" "path/filepath" "github.com/fsgo/fsenv" ) func main() { dir := fsenv.LogRootDir() fmt.Println("log root dir=", dir) // 输出 {xxx}/log dbLogPath := filepath.Join(dir, "db", "mysql.log") fmt.Println("db log path=", dbLogPath) // 输出 {xxx}/log/db/mysql.log }
Output:
func MustLoadEnvFile ¶ added in v0.3.0
func MustLoadEnvFile(fn string)
MustLoadEnvFile 加载一个 env 文件到 os.env 里。 若有异常,会 panic
func ParserEnvContent ¶ added in v0.3.0
ParserEnvContent 解析 env 文件的内容
func ParserEnvFile ¶ added in v0.3.0
ParserEnvFile 解析一个 env 文件
Types ¶
type AppConfEnv ¶ added in v0.2.0
type AppConfEnv interface { HasConfRootDir CanSetConfRootDir }
AppConfEnv 配置环境信息
type AppDataEnv ¶ added in v0.2.0
type AppDataEnv interface { HasDataRootDir CanSetDataRootDir }
AppDataEnv 数据目录环境信息
type AppEnv ¶
type AppEnv interface { RootDir() string DataRootDir() string LogRootDir() string ConfRootDir() string IDC() string RunMode() Mode Value() Value }
AppEnv 应用环境信息完整的接口定义
type AppEnvRW ¶ added in v0.2.0
type AppEnvRW interface { AppRootEnv AppDataEnv AppLogEnv AppConfEnv AppIDCEnv AppRunMode Value() Value }
AppEnvRW 可读写的接口定义
var Default AppEnvRW
Default (全局)默认的环境信息
type AppLogEnv ¶ added in v0.2.0
type AppLogEnv interface { HasLogRootDir CanSetLogRootDir }
AppLogEnv 日志目录环境信息
type AppRootEnv ¶ added in v0.2.0
type AppRootEnv interface { HasRootDir CanSetRootDir }
AppRootEnv 应用更目录环境信息
type AppRunMode ¶ added in v0.2.0
type AppRunMode interface { HasRunMode CanSetRunMode }
AppRunMode 机房信息
func NewAppRunModeEnv ¶ added in v0.2.0
func NewAppRunModeEnv(mode Mode) AppRunMode
NewAppRunModeEnv 创建新的配置环境信息
type CanSetAppEnv ¶ added in v0.2.1
type CanSetAppEnv interface {
SetAppEnv(env AppEnv)
}
CanSetAppEnv 允许设置 app 的 env
type CanSetConfRootDir ¶ added in v0.2.1
type CanSetConfRootDir interface {
SetConfRootDir(dir string)
}
CanSetConfRootDir 运行设置配置目录
type CanSetDataRootDir ¶ added in v0.2.1
type CanSetDataRootDir interface {
SetDataRootDir(dir string)
}
CanSetDataRootDir 允许设置数据目录
type CanSetLogRootDir ¶ added in v0.2.1
type CanSetLogRootDir interface {
SetLogRootDir(dir string)
}
CanSetLogRootDir 可以设置日志根目录
type CanSetRootDir ¶ added in v0.2.1
type CanSetRootDir interface {
SetRootDir(dir string)
}
CanSetRootDir 可以设置根目录
type CanSetRunMode ¶ added in v0.2.1
type CanSetRunMode interface {
SetRunMode(mode Mode)
}
CanSetRunMode 允许设置 runMode
type HasAppEnv ¶ added in v0.2.1
type HasAppEnv interface {
AppEnv() AppEnv
}
HasAppEnv 可以获取 app env
type HasConfRootDir ¶ added in v0.2.1
type HasConfRootDir interface {
ConfRootDir() string
}
HasConfRootDir 可以获取配置目录
type HasDataRootDir ¶ added in v0.2.1
type HasDataRootDir interface {
DataRootDir() string
}
HasDataRootDir 可以获取数据目录
type HasLogRootDir ¶ added in v0.2.1
type HasLogRootDir interface {
LogRootDir() string
}
HasLogRootDir 可以获取日志根目录
type HasRunMode ¶ added in v0.2.1
type HasRunMode interface {
RunMode() Mode
}
HasRunMode 可以获取 runMode
type Value ¶
type Value struct { RootDir string DataDir string LogDir string ConfDir string IDC string RunMode Mode }
Value 具体的环境信息
type WithAppEnv ¶ added in v0.2.0
type WithAppEnv struct {
// contains filtered or unexported fields
}
WithAppEnv 用于第三方模块管理环境信息
func (*WithAppEnv) SetAppEnv ¶ added in v0.2.2
func (m *WithAppEnv) SetAppEnv(env AppEnv)
SetAppEnv 设置自定义的环境信息,只允许设置一次