Beispiel #1
0
// 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
}
Beispiel #2
0
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)
}
Beispiel #3
0
// 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
}