| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | package dnsimport (	"github.com/0xJacky/Nginx-UI/internal/cert/config"	"github.com/BurntSushi/toml"	"log"	"os"	"path/filepath")type Configuration struct {	Credentials map[string]string `json:"credentials"`	Additional  map[string]string `json:"additional"`}type Links struct {	API      string `json:"api"`	GoClient string `json:"go_client"`}type Config struct {	Name          string         `json:"name"`	Code          string         `json:"code"`	Configuration *Configuration `json:"configuration,omitempty"`	Links         *Links         `json:"links,omitempty"`}var configurations []Configvar configurationMap map[string]Configfunc init() {	files, err := config.DistFS.ReadDir(".")	if err != nil {		log.Fatalln(err)	}	configurationMap = make(map[string]Config)	for _, file := range files {		if filepath.Ext(file.Name()) != ".toml" {			continue		}		c := Config{}		_, err = toml.DecodeFS(config.DistFS, file.Name(), &c)		if err != nil {			log.Fatalln(err)		}		configurationMap[c.Code] = c		c.Configuration = nil		c.Links = nil		configurations = append(configurations, c)	}}func GetProvidersList() []Config {	return configurations}func GetProvider(code string) (Config, bool) {	if v, ok := configurationMap[code]; ok {		return v, ok	}	return Config{}, false}func (c *Config) SetEnv(configuration Configuration) error {	if c.Configuration != nil {		for k := range c.Configuration.Credentials {			if value, ok := configuration.Credentials[k]; ok {				err := os.Setenv(k, value)				if err != nil {					return err				}			}		}		for k := range c.Configuration.Additional {			if value, ok := configuration.Additional[k]; ok {				err := os.Setenv(k, value)				if err != nil {					return err				}			}		}	}	return nil}func (c *Config) CleanEnv() {	if c.Configuration != nil {		for k := range c.Configuration.Credentials {			_ = os.Unsetenv(k)		}		for k := range c.Configuration.Additional {			_ = os.Unsetenv(k)		}	}}
 |