diff --git a/define.go b/define.go new file mode 100644 index 0000000..d19c82a --- /dev/null +++ b/define.go @@ -0,0 +1,26 @@ +// Package config ... +// +// Description : config ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-11-05 16:26 +package config + +// DefaultConfig 默认配置文件路径配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:27 2024/11/5 +// +// 默认配置文件路径配置, 配置文件路径及类型也可通过命令行参数指定. 支持属性如下: +// - config-type(dct) : 配置文件类型 ini / json / yml / yaml / toml , 默认值:空字符串,会根据传入配置文件后缀自行判断 +// - config-path(dcp) : 配置文件路径, 传入绝对路径,则使用绝对路径读取,传入相对路径,则自动在服务运行的根目录下进行文件查找 +// - parse-sort(dps) : 配置文件解析的优先级,分隔 , 排在前面的优先级高, eg : cli,env,param +// - env-file(def) : 环境变量文件路径, 传入绝对路径,则使用绝对路径读取,传入相对路径,则自动在服务运行的根目录下进行文件查找s +type DefaultConfig struct { + ConfigType string `short:"dct" long:"config-type" json:"config_type" ini:"config_type" yaml:"config_type" toml:"config_type" description:"配置文件类型 : ini / json / yml / yaml / toml , 默认值:空字符串,会根据传入配置文件后缀自行判断"` + ConfigPath string `short:"dcp" long:"config-path" json:"config_path" ini:"config_path" yaml:"config_path" toml:"config_path" description:"配置文件路径, 传入绝对路径,则使用绝对路径读取,传入相对路径,则自动在服务运行的根目录下进行文件查找"` + ParseSort string `short:"dps" long:"parse-sort" json:"parse_sort" ini:"parse_sort" yaml:"parse_sort" toml:"parse_sort" description:"参数解析优先级,支持 : cli/env/file"` + EnvFile string `short:"def" long:"env-file" json:"env_file" ini:"env_file" yaml:"env_file" toml:"env_file" description:"环境变量文件路径, 传入绝对路径,则使用绝对路径读取,传入相对路径,则自动在服务运行的根目录下进行文件查找"` +} diff --git a/init.go b/init.go new file mode 100644 index 0000000..3934477 --- /dev/null +++ b/init.go @@ -0,0 +1,28 @@ +// Package config ... +// +// Description : config ... +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 2024-11-05 16:23 +package config + +import ( + "github.com/jessevdk/go-flags" +) + +// Init 初始化配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 16:25 2024/11/5 +func Init(configReceiver any) error { + var ( + err error + ) + + if _, err = flags.Parse(configReceiver); nil != err { + return err + } + return nil +}