remote-i3wm-go/config.go

55 lines
993 B
Go
Raw Normal View History

2023-08-25 11:19:54 +02:00
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"`
}
2023-08-26 11:40:58 +02:00
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"`
2023-08-25 11:19:54 +02:00
}
type Config struct {
2023-08-26 11:40:58 +02:00
Server ServerConfig `yaml:"server"`
Remote []RemoteItem `yaml:"remote"`
2023-08-25 11:19:54 +02:00
}
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
}