in pkg/config/draftconfig.go [190:229]
func (d *DraftConfig) ApplyDefaultVariables() error {
for _, variable := range d.Variables {
if variable.Value == "" {
if variable.Default.ReferenceVar != "" {
referenceVar, err := d.GetVariable(variable.Default.ReferenceVar)
if err != nil {
return fmt.Errorf("apply default variables: %w", err)
}
defaultVal, err := d.recurseReferenceVars(referenceVar, referenceVar, true)
if err != nil {
return fmt.Errorf("apply default variables: %w", err)
}
log.Infof("Variable %s defaulting to value %s", variable.Name, defaultVal)
variable.Value = defaultVal
}
isVarActive, err := d.CheckActiveWhenConstraint(variable)
if err != nil {
return fmt.Errorf("unable to check ActiveWhen constraint: %w", err)
}
if !isVarActive {
continue
}
if variable.Value == "" {
if variable.Default.Value != "" {
log.Infof("Variable %s defaulting to value %s", variable.Name, variable.Default.Value)
variable.Value = variable.Default.Value
} else {
return errors.New("variable " + variable.Name + " has no default value")
}
}
} else {
log.Infof("Variable %s already set to value %s", variable.Name, variable.Value)
}
}
return nil
}