config.go 568 B

1234567891011121314151617181920212223242526272829303132333435
  1. package config
  2. import (
  3. "io/ioutil"
  4. "gopkg.in/yaml.v2"
  5. )
  6. type Config struct {
  7. Homeserver homeserver `yaml:"homeserver"`
  8. Appservice appservice `yaml:"appservice"`
  9. }
  10. func FromBytes(data []byte) (*Config, error) {
  11. cfg := Config{}
  12. if err := yaml.Unmarshal(data, &cfg); err != nil {
  13. return nil, err
  14. }
  15. return &cfg, nil
  16. }
  17. func FromString(str string) (*Config, error) {
  18. return FromBytes([]byte(str))
  19. }
  20. func FromFile(filename string) (*Config, error) {
  21. data, err := ioutil.ReadFile(filename)
  22. if err != nil {
  23. return nil, err
  24. }
  25. return FromBytes(data)
  26. }