Documentation ¶
Overview ¶
Package xattr 应用的属性信息,如应用名,应用的根目录,配置目录,日志目录,数据目录等
Index ¶
- Constants
- func AppName() string
- func ConfDir() string
- func DataDir() string
- func Get(key any) (any, bool)
- func GetAs[T any](key any) (result T, ok bool)
- func GetDefault[T any](key any, def T) T
- func IDC() string
- func Init(appName string, rootDir string)
- func LogDir() string
- func RandID() int64
- func RandIDString() string
- func Range(fn func(key any, value any) bool)
- func RootDir() string
- func Set(key any, value any)
- func SetAppName(name string)
- func SetConfDir(dir string)
- func SetDataDir(dir string)
- func SetIDC(idc string)
- func SetLogDir(dir string)
- func SetRootDir(dir string)
- func SetRunMode(mode Mode)
- func SetTempDir(dir string)
- func StartTime() time.Time
- func TempDir() string
- type Attribute
- func (a *Attribute) AppName() string
- func (a *Attribute) ConfDir() string
- func (a *Attribute) DataDir() string
- func (a *Attribute) Get(key any) (any, bool)
- func (a *Attribute) IDC() string
- func (a *Attribute) LogDir() string
- func (a *Attribute) Range(fn func(key any, value any) bool)
- func (a *Attribute) RootDir() string
- func (a *Attribute) RunMode() Mode
- func (a *Attribute) Set(key any, value any)
- func (a *Attribute) SetAppName(name string)
- func (a *Attribute) SetConfDir(name string)
- func (a *Attribute) SetDataDir(name string)
- func (a *Attribute) SetIDC(idc string)
- func (a *Attribute) SetLogDir(name string)
- func (a *Attribute) SetRootDir(dir string)
- func (a *Attribute) SetRunMode(mode Mode)
- func (a *Attribute) SetTempDir(name string)
- func (a *Attribute) TempDir() string
- type FileConfig
- type Mode
Examples ¶
Constants ¶
View Source
const ( IDCOnline = "online" IDCDev = "dev" )
Variables ¶
This section is empty.
Functions ¶
func AppName ¶
func AppName() string
Example ¶
package main import ( "fmt" "github.com/xanygo/anygo/xattr" ) func main() { fmt.Println("appName=", xattr.AppName()) }
Output: appName= xattr
func GetDefault ¶
func IDC ¶
func IDC() string
IDC (全局)获取应用的 IDC
Example ¶
package main import ( "fmt" "github.com/xanygo/anygo/xattr" ) func main() { fmt.Println("idc=", xattr.IDC()) // idc= online }
Output: idc= online
func RandIDString ¶
func RandIDString() string
func SetAppName ¶
func SetAppName(name string)
Types ¶
type Attribute ¶
type Attribute struct {
// contains filtered or unexported fields
}
var Default *Attribute
Default (全局)默认的环境信息
func NewAttribute ¶
NewAttribute 创建一个新的 Attribute 对象
appName: 应用名,建议满足正则 [a-zA-Z0-9_-]+ rootDir: 应用的根目录,建议传入绝对路径
ConfDir、DataDir、LogDir、TempDir 的默认值均依据 rootDir 推断而来, 并且会优先使用环境变量配置的额值,具体如下:
ConfDir : 优先使用环境变量 ANYGO_CONF 的值,若没有则使用默认值 {rootDir}/conf/ DataDir : 优先使用环境变量 ANYGO_DATA 的值,若没有则使用默认值 {rootDir}/data/ LogDir : 优先使用环境变量 ANYGO_LOG 的值,若没有则使用默认值 {rootDir}/log/ TempDir : 优先使用环境变量 ANYGO_TEMP 的值,若没有则使用默认值 {rootDir}/temp/
func (*Attribute) SetAppName ¶
SetAppName 设置应用名称,建议满足正则 [a-zA-Z0-9_-]+
func (*Attribute) SetConfDir ¶
func (*Attribute) SetDataDir ¶
SetDataDir 设置数据目录 应在 SetRootDir 调用之后调用
func (*Attribute) SetTempDir ¶
type FileConfig ¶
type FileConfig struct { // Listen 监听的端口信息,可选 Listen map[string]string `yaml:"Listen"` // AppName 应用名称,可选 AppName string // IDC 应用运行机房,可选 IDC string `yaml:"IDC"` // RunMode 运行模式,可选 // 可选值:product (生成环境),debug (调试模式) RunMode string `yaml:"RunMode"` // RootDir 应用根目录,可选 RootDir string `yaml:"RootDir"` // DataDir 应用数据目录,可选 DataDir string `yaml:"DataDir"` // LogDir 应用日志目录,可选 LogDir string `yaml:"LogDir"` // ConfDir 应用配置文件目录,可选 ConfDir string `yaml:"ConfDir"` // TempDir 应用临时文件目录,可选 TempDir string `yaml:"TempDir"` // Other 其他项,可选 Other map[string]any `yaml:"Other"` // SelfPath 配置自己的路径 SelfPath string }
FileConfig 应用的主配置文件,一般是 conf/app.yml 或 conf/app.json
func AppMain ¶
func AppMain() FileConfig
AppMain 应用主配置文件,在使用前,需要先使用 InitAppMainCfg 或者 MustInitAppMain 加载
func InitAppMain ¶
InitAppMain 初始化应用主配置文件
func MustInitAppMain ¶
func MustInitAppMain(path string, parser func(string, any) error) FileConfig
MustInitAppMain 初始化应用主配置文件,若失败会 panic
func ParserFileConfig ¶
func (FileConfig) GetListen ¶
func (c FileConfig) GetListen(name string) string
func (FileConfig) SetTo ¶
func (c FileConfig) SetTo(attr *Attribute)
func (FileConfig) SetToDefault ¶
func (c FileConfig) SetToDefault()
Source Files ¶
Click to show internal directories.
Click to hide internal directories.