cli/bpmetadata/display.go (41 lines of code) (raw):

package bpmetadata import ( "strings" "golang.org/x/text/cases" "golang.org/x/text/language" ) func buildUIInputFromVariables(vars []*BlueprintVariable, input *BlueprintUIInput) { if input.Variables == nil { input.Variables = make(map[string]*DisplayVariable) } for _, v := range vars { _, hasDisplayVar := input.Variables[v.Name] if hasDisplayVar { continue } input.Variables[v.Name] = &DisplayVariable{ Name: v.Name, Title: createTitleFromName(v.Name), } } } func createTitleFromName(name string) string { nameSplit := strings.Split(name, "_") var titleSplit []string for _, n := range nameSplit { titleSplit = append(titleSplit, cases.Title(language.Und, cases.NoLower).String(n)) } return strings.Join(titleSplit, " ") } // mergeExistingAltDefaults merges existing alt_defaults from an old BlueprintUIInput into a new one, // preserving manually authored alt_defaults. func mergeExistingAltDefaults(newInput, existingInput *BlueprintUIInput) { if existingInput == nil { return // Nothing to merge if existingInput is nil } for i, variable := range newInput.Variables { for _, existingVariable := range existingInput.Variables { if variable.Name == existingVariable.Name && existingVariable.AltDefaults != nil { newInput.Variables[i].AltDefaults = existingVariable.AltDefaults } } } }