xattr

package
v0.0.0-...-b147793 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: BSD-3-Clause Imports: 9 Imported by: 0

Documentation

Overview

Package xattr 应用的属性信息,如应用名,应用的根目录,配置目录,日志目录,数据目录等

Index

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 ConfDir

func ConfDir() string

ConfDir (全局)获取应用配置根目录

func DataDir

func DataDir() string

DataDir (全局)设置应用数据根目录

func Get

func Get(key any) (any, bool)

func GetAs

func GetAs[T any](key any) (result T, ok bool)

func GetDefault

func GetDefault[T any](key any, def T) T

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 Init

func Init(appName string, rootDir string)

func LogDir

func LogDir() string

LogDir (全局)获取应用日志根目录

func RandID

func RandID() int64

RandID 随机数,每次进程重启后发生变化

func RandIDString

func RandIDString() string

func Range

func Range(fn func(key any, value any) bool)

func RootDir

func RootDir() string

RootDir (全局)获取应用根目录

func Set

func Set(key any, value any)

func SetAppName

func SetAppName(name string)

func SetConfDir

func SetConfDir(dir string)

SetConfDir (全局)设置应用配置根目录

func SetDataDir

func SetDataDir(dir string)

SetDataDir 设置(全局)应用数据根目录

func SetIDC

func SetIDC(idc string)

SetIDC (全局) 设置idc

func SetLogDir

func SetLogDir(dir string)

SetLogDir (全局)设置应用日志根目录

func SetRootDir

func SetRootDir(dir string)

SetRootDir (全局)设置应用根目录

func SetRunMode

func SetRunMode(mode Mode)

SetRunMode (全局)设置应用的运行模式,是并发安全的

func SetTempDir

func SetTempDir(dir string)

SetTempDir (全局)设置应用临时文件根目录

func StartTime

func StartTime() time.Time

StartTime 进程启动时间

func TempDir

func TempDir() string

TempDir (全局)获取应用临时文件根目录

Types

type Attribute

type Attribute struct {
	// contains filtered or unexported fields
}
var Default *Attribute

Default (全局)默认的环境信息

func NewAttribute

func NewAttribute(appName string, rootDir string) *Attribute

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) AppName

func (a *Attribute) AppName() string

AppName 获取应用名

func (*Attribute) ConfDir

func (a *Attribute) ConfDir() string

func (*Attribute) DataDir

func (a *Attribute) DataDir() string

DataDir 获取数据目录

func (*Attribute) Get

func (a *Attribute) Get(key any) (any, bool)

func (*Attribute) IDC

func (a *Attribute) IDC() string

func (*Attribute) LogDir

func (a *Attribute) LogDir() string

func (*Attribute) Range

func (a *Attribute) Range(fn func(key any, value any) bool)

func (*Attribute) RootDir

func (a *Attribute) RootDir() string

RootDir 获取应用根目录

func (*Attribute) RunMode

func (a *Attribute) RunMode() Mode

RunMode 读取运行模式

func (*Attribute) Set

func (a *Attribute) Set(key any, value any)

func (*Attribute) SetAppName

func (a *Attribute) SetAppName(name string)

SetAppName 设置应用名称,建议满足正则 [a-zA-Z0-9_-]+

func (*Attribute) SetConfDir

func (a *Attribute) SetConfDir(name string)

func (*Attribute) SetDataDir

func (a *Attribute) SetDataDir(name string)

SetDataDir 设置数据目录 应在 SetRootDir 调用之后调用

func (*Attribute) SetIDC

func (a *Attribute) SetIDC(idc string)

func (*Attribute) SetLogDir

func (a *Attribute) SetLogDir(name string)

func (*Attribute) SetRootDir

func (a *Attribute) SetRootDir(dir string)

SetRootDir 设置应用根目录

func (*Attribute) SetRunMode

func (a *Attribute) SetRunMode(mode Mode)

SetRunMode 设置运行模式,是并发安全的

func (*Attribute) SetTempDir

func (a *Attribute) SetTempDir(name string)

func (*Attribute) TempDir

func (a *Attribute) TempDir() string

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

func InitAppMain(path string, parser func(string, any) error) (FileConfig, error)

InitAppMain 初始化应用主配置文件

func MustInitAppMain

func MustInitAppMain(path string, parser func(string, any) error) FileConfig

MustInitAppMain 初始化应用主配置文件,若失败会 panic

func ParserFileConfig

func ParserFileConfig(path string, parser func(string, any) error) (*FileConfig, error)

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()

type Mode

type Mode int32

Mode 运行模式

const (
	// ModeProduct 运行模式-线上发布
	ModeProduct Mode = iota

	// ModeDebug 运行模式-调试
	ModeDebug
)

func RunMode

func RunMode() Mode

RunMode (全局)获取应用的运行模式

Example
package main

import (
	"fmt"

	"github.com/xanygo/anygo/xattr"
)

func main() {
	fmt.Println("runMode=", xattr.RunMode()) // runMode= product

}
Output:

runMode= product

func (Mode) String

func (m Mode) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL