name-dyndns/api/config.go

44 lines
1 KiB
Go
Raw Normal View History

2015-04-30 00:18:08 -04:00
package api
import (
"encoding/json"
"io/ioutil"
)
2015-05-04 20:20:11 -04:00
// Each configuration should represent a specifc domain.
// A domain can have multiple hostnames, and the hostnames
// that should be automaticall updated are in Hostnames.
// If the root domain is to be managed, an empty hostname
// should be added to the Hostnames slice.
//
// The interval is the polling time (in seconds) for
// daemon mode.
2015-04-30 00:18:08 -04:00
type Config struct {
Dev bool `json:"dev"`
Domain string `json:"domain"`
Hostnames []string `json:"hostnames"`
Interval int `json:"interval"`
Token string `json:"token"`
Username string `json:"username"`
2015-04-30 00:18:08 -04:00
}
2015-05-04 20:20:11 -04:00
// Loads configurations from a file. The configuration
// is stored as an array of JSON serialized Config structs.
2015-04-30 00:18:08 -04:00
func LoadConfigs(path string) ([]Config, error) {
var configs struct {
Configs []Config
}
file, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
err = json.Unmarshal(file, &configs)
if err != nil {
return nil, err
}
return configs.Configs, nil
}