func GetStringFeatures(v *viper.Viper, features map[string]bool, key string) string { val := v.GetString(key) // Process the features in alphabetical order to ensure consistent // results across repeated runs. var featureKeys []string for feature, _ := range features { featureKeys = append(featureKeys, feature) } sort.Strings(featureKeys) for _, feature := range featureKeys { overwriteVal := v.GetString(key + "." + feature + ".OVERWRITE") if overwriteVal != "" { val = strings.Trim(overwriteVal, "\n") break } appendVal := v.GetString(key + "." + feature) if appendVal != "" { val += " " + strings.Trim(appendVal, "\n") } } return strings.TrimSpace(val) }
func (pkg *LocalPackage) readDesc(v *viper.Viper) (*PackageDesc, error) { pdesc := &PackageDesc{} pdesc.Author = v.GetString("pkg.author") pdesc.Homepage = v.GetString("pkg.homepage") pdesc.Description = v.GetString("pkg.description") pdesc.Keywords = v.GetStringSlice("pkg.keywords") return pdesc, nil }