func (instance Config) validateRequireStringValue(value values.String, fieldName string, isAllowedMethod func() bool) error { if isAllowedMethod() { if value.IsEmpty() { return errors.New("There is no %s set for type %v.", fieldName, instance.Type) } } return nil }
// 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 }
func (instance Config) validateStringOnlyAllowedValue(value values.String, fieldName string, isAllowedMethod func() bool, defaultValue values.String) error { if !isAllowedMethod() && value != defaultValue && !value.IsEmpty() { return errors.New("There is no %s allowed for type %v.", fieldName, instance.Type) } return nil }