45 lines
796 B
Go
45 lines
796 B
Go
package config
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
|
|
"gopkg.in/yaml.v2"
|
|
)
|
|
|
|
type Config struct {
|
|
Authorizer AuthorizerConfig `yaml:"authorizer"`
|
|
PGDSN string `yaml:"pgdsn"`
|
|
Port string `yaml:"listen_port"`
|
|
TraktTVClientID string `yaml:"trakttv_client_id"`
|
|
}
|
|
|
|
type AuthorizerConfig struct {
|
|
CookieName string `yaml:"cookie_name"`
|
|
Key string `yaml:"cookie_key"`
|
|
Peeper string `yaml:"peeper"`
|
|
Cost int `yaml:"cost"`
|
|
}
|
|
|
|
func Load(path string) (*Config, error) {
|
|
file, err := os.Open(path)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer file.Close()
|
|
|
|
cf := &Config{}
|
|
|
|
b, err := ioutil.ReadAll(file)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = yaml.Unmarshal(b, cf)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return cf, nil
|
|
}
|