package options import ( "fmt" "os" "time" "gitea.timerzz.com/kedaya_haitao/common/pkg/proxy" v2 "gitea.timerzz.com/kedaya_haitao/common/structs/v2" "gopkg.in/yaml.v3" ) const ( ProxyConfigEnv = "PROXY_CONFIG_PATH" DefaultProxyConfigPath = "/cfg/proxy.yaml" ) type Config struct { Proxy proxy.Option `yaml:"proxy"` ProviderId v2.ProviderId `yaml:"provider_id"` WatchInterval time.Duration } func LoadConfigs() (opt *Config, err error) { opt = &Config{} // 从环境变量中读取ProviderId opt.ProviderId = v2.ProviderId(os.Getenv("PROVIDER_ID")) if opt.ProviderId == "" { return nil, fmt.Errorf("环境变量未配置供应商id") } opt.WatchInterval, _ = time.ParseDuration(os.Getenv("WATCH_INTERVAL")) if opt.WatchInterval == 0 { opt.WatchInterval = 5 * time.Minute } // 加载代理配置 cfgPath := os.Getenv(ProxyConfigEnv) if cfgPath == "" { cfgPath = DefaultProxyConfigPath } f, err := os.Open(cfgPath) if err != nil { return nil, err } defer f.Close() return opt, yaml.NewDecoder(f).Decode(&opt.Proxy) }