123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package config
- import (
- "io/ioutil"
- "gopkg.in/yaml.v2"
- )
- type Config struct {
- Homeserver homeserver `yaml:"homeserver"`
- Appservice appservice `yaml:"appservice"`
- Bridge bridge `yaml:"bridge"`
- }
- func FromBytes(data []byte) (*Config, error) {
- cfg := Config{}
- if err := yaml.Unmarshal(data, &cfg); err != nil {
- return nil, err
- }
- return &cfg, nil
- }
- func FromString(str string) (*Config, error) {
- return FromBytes([]byte(str))
- }
- func FromFile(filename string) (*Config, error) {
- data, err := ioutil.ReadFile(filename)
- if err != nil {
- return nil, err
- }
- return FromBytes(data)
- }
- func (cfg *Config) Save(filename string) error {
- data, err := yaml.Marshal(cfg)
- if err != nil {
- return err
- }
- return ioutil.WriteFile(filename, data, 0600)
- }
|