in pkg/handlers/template.go [114:141]
func (l *Template) ExtractDefaults(lowerLang string, r reporeader.RepoReader) (map[string]string, error) {
extractors := []reporeader.VariableExtractor{
&defaults.PythonExtractor{},
&defaults.GradleExtractor{},
}
extractedValues := make(map[string]string)
if r == nil {
log.Debugf("no repo reader provided, returning empty list of defaults")
return extractedValues, nil
}
for _, extractor := range extractors {
if extractor.MatchesLanguage(lowerLang) {
newDefaults, err := extractor.ReadDefaults(r)
if err != nil {
return nil, fmt.Errorf("error reading defaults for language %s: %v", lowerLang, err)
}
for k, v := range newDefaults {
if _, ok := extractedValues[k]; ok {
log.Debugf("duplicate default %s for language %s with extractor %s", k, lowerLang, extractor.GetName())
}
extractedValues[k] = v
log.Debugf("extracted default %s=%s with extractor:%s", k, v, extractor.GetName())
}
}
}
return extractedValues, nil
}