45 lines
806 B
Go
45 lines
806 B
Go
package main
|
|
|
|
import (
|
|
"gopkg.in/yaml.v3"
|
|
"os"
|
|
)
|
|
|
|
type ServerAuthConfig struct {
|
|
Username string `yaml:"username"`
|
|
Password string `yaml:"password"`
|
|
}
|
|
|
|
type ServerConfig struct {
|
|
Listen string `yaml:"listen"`
|
|
Auth ServerAuthConfig `yaml:"auth"`
|
|
}
|
|
|
|
type RemoteConfigItem struct {
|
|
Type string `yaml:"type"`
|
|
Label string `yaml:"label"`
|
|
Items []map[string]string `yaml:"items"`
|
|
}
|
|
|
|
type Config struct {
|
|
Server ServerConfig `yaml:"server"`
|
|
Remote map[string][]RemoteConfigItem `yaml:"remote"`
|
|
}
|
|
|
|
func createConfigFromFile(file string) (Config, error) {
|
|
data, err := os.ReadFile(file)
|
|
value := Config{}
|
|
|
|
if err != nil {
|
|
return value, err
|
|
}
|
|
|
|
err = yaml.Unmarshal(data, &value)
|
|
|
|
if err != nil {
|
|
return value, err
|
|
}
|
|
|
|
return value, nil
|
|
}
|