in tui/components.go [242:333]
func (s settingsTable) render() string {
doc := strings.Builder{}
wSetting := 0
wValue := 0
s.stack.Settings.Sort()
rows := []table.Row{}
if s := s.stack.Settings.Find("stack_name"); s != nil && len(s.Value) > 0 {
rows = append(rows, table.Row{
titleStyle.Render("Stack Name"),
strong.Render(s.Value),
})
}
if s := s.stack.Settings.Find("project_name"); s != nil && len(s.Value) > 0 {
rows = append(rows, table.Row{
titleStyle.Render("Project Name"),
strong.Render(s.Value),
})
}
if s := s.stack.Settings.Find("project_id"); s != nil && len(s.Value) > 0 {
rows = append(rows, table.Row{
titleStyle.Render("Project ID"),
strong.Render(s.Value),
})
}
if s := s.stack.Settings.Find("project_number"); s != nil && len(s.Value) > 0 {
rows = append(rows, table.Row{
titleStyle.Render("Project Number"),
strong.Render(s.Value),
})
}
for _, setting := range s.stack.Settings {
rawValue := setting.TFvarsValue()
rawValue = strings.Trim(rawValue, "\"")
value := strong.Render(strings.TrimSpace(rawValue))
if len(rawValue) > 45 {
value = strong.Render(rawValue[:45] + "...")
}
if len(setting.Name) > wSetting {
wSetting = len(setting.Name)
}
if len(value) > wValue {
wValue = len(value)
}
if setting.Name == "project_id" ||
setting.Name == "project_number" ||
setting.Name == "project_name" ||
setting.Name == "stack_name" {
continue
}
if len(value) < 1 {
continue
}
nameRaw := strings.TrimSpace(setting.Name)
nameRaw = strings.ReplaceAll(nameRaw, "_", " ")
nameRaw = strings.ReplaceAll(nameRaw, "-", " ")
formatted := cases.Title(language.English).String(nameRaw)
rows = append(rows, table.Row{titleStyle.Render(formatted), value})
}
columns := []table.Column{
{Title: "Setting", Width: 35},
{Title: "Value", Width: 55},
}
t := table.New(
table.WithColumns(columns),
table.WithRows(rows),
table.WithFocused(false),
table.WithHeight(len(s.stack.Settings)),
)
t.SetStyles(tableStyle)
doc.WriteString("\n")
doc.WriteString(t.View())
doc.WriteString("\n")
return doc.String()
}