83 lines
1.5 KiB
Go
83 lines
1.5 KiB
Go
|
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
|
|||
|
}
|