// WriteToYamlFile writes the config of the current instance to the given yaml file. func (instance Config) WriteToYamlFile(fileName values.String) error { content, err := yaml.Marshal(instance) if err != nil { return errors.New("Could not write config to '%v'.", fileName).CausedBy(err) } if err := ioutil.WriteFile(fileName.String(), content, 0744); err != nil { return errors.New("Could not write marshalled config to '%v'.", fileName).CausedBy(err) } return nil }
func parseCertificatesInFile(filename values.String) ([]tls.Certificate, error) { pemInEnv := os.Getenv("CTD_PEM") if len(pemInEnv) > 0 { return parseCertificates([]byte(pemInEnv)) } fileContent, err := ioutil.ReadFile(filename.String()) if err != nil { return nil, errors.New("Could not read pem file '%v'.", filename).CausedBy(err) } return parseCertificates(fileContent) }
// LoadFromYamlFile loads the caretakerd config from the given yaml file. func LoadFromYamlFile(fileName values.String) (Config, error) { result := NewConfig() content, err := ioutil.ReadFile(fileName.String()) if err != nil { if os.IsNotExist(err) { return Config{}, ConfigDoesNotExistError{fileName: fileName.String()} } return Config{}, errors.New("Could not read config from '%v'.", fileName).CausedBy(err) } if err := yaml.Unmarshal(content, &result); err != nil { return Config{}, errors.New("Could not unmarshal config from '%v'.", fileName).CausedBy(err) } return result, nil }