remote-i3wm-go/config.go
2023-08-26 12:19:00 +02:00

55 lines
993 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 RemoteItemConfigItem struct {
Label string `yaml:"label"`
Message string `yaml:"message"`
}
type RemoteItemConfig struct {
Type string `yaml:"type"`
Label string `yaml:"label"`
Items []RemoteItemConfigItem `yaml:"items"`
}
type RemoteItem struct {
Label string `yaml:"label"`
Items []RemoteItemConfig `yaml:"items"`
}
type Config struct {
Server ServerConfig `yaml:"server"`
Remote []RemoteItem `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
}