aiweek-reconstruction/tools/option.go

83 lines
1.5 KiB
Go
Raw Permalink Normal View History

2024-05-18 01:46:35 +08:00
package tools
import (
"gopkg.in/yaml.v2"
"io"
"log"
"os"
)
//自定义选项
type Option struct {
Filters []struct {
Filter7D string `yaml:"filter7d"`
Filter14D string `yaml:"filter14d"`
} `yaml:"filters"`
Macros []string `yaml:"macros"`
}
//自定义文件服务器地址
type ServerConf struct {
Server []string `yaml:"server"`
}
func NewOptionObj() *Option {
return &Option{}
}
func NewServerConfObj() *ServerConf {
return &ServerConf{}
}
func (ServerConf) ReadYaml(yamlFile string) *ServerConf {
file, err := os.Open(yamlFile)
if err != nil {
log.Printf("打开yaml文件错误错误是%v", err)
return nil
}
defer file.Close()
data, err := io.ReadAll(file)
if err != nil {
log.Printf("读取yaml文件错误错误是%v", err)
return nil
}
var serverconf ServerConf
err = yaml.Unmarshal(data, &serverconf)
if err != nil {
log.Printf("yaml文件内容反序列化失败错误是%v", err)
return nil
}
return &serverconf
}
func (Option) ReadYaml(yamlFile string) *Option {
file, err := os.Open(yamlFile)
if err != nil {
log.Printf("打开yaml文件错误错误是%v", err)
return nil
}
defer file.Close()
data, err := io.ReadAll(file)
if err != nil {
log.Printf("读取yaml文件错误错误是%v", err)
return nil
}
var option Option
err = yaml.Unmarshal(data, &option)
if err != nil {
log.Printf("yaml文件内容反序列化失败错误是%v", err)
return nil
}
return &option
}