videopage/config.go

43 lines
936 B
Go

package main
import (
"fmt"
"io/ioutil"
"gopkg.in/yaml.v2"
)
type Config struct {
ApplicationName string `yaml:"application_name"`
ApplicationPrefix string `yaml:"application_prefix"`
DataDirectory string `yaml:"data_directory"`
ListenAddress string `yaml:"listen_address"`
AdminUser string `yaml:"admin_user"`
AdminPassword string `yaml:"admin_password"`
Generation int `yaml:"generation"`
}
func (c *Config) ParseFile(path string) (err error) {
configRaw, err := ioutil.ReadFile(path)
if err != nil {
err = fmt.Errorf("can't load configuration: %s", err.Error())
return
}
err = yaml.UnmarshalStrict(configRaw, c)
if err != nil {
err = fmt.Errorf("can't parse configuration: %s", err.Error())
return
}
return
}
func NewConfig() *Config {
return &Config{}
}
func NewConfigParseFile(path string) (c *Config, err error) {
c = NewConfig()
err = c.ParseFile(path)
return
}