github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/pkg/service/output-text.go (about) 1 package service 2 3 import ( 4 "fmt" 5 6 "github.com/easysoft/zendata/internal/pkg/domain" 7 logUtils "github.com/easysoft/zendata/pkg/utils/log" 8 "github.com/easysoft/zendata/pkg/utils/vari" 9 ) 10 11 func (s *OutputService) FindValuesByPath(path string, defFields domain.DefField) []interface{} { 12 if path == defFields.Path { 13 return defFields.Values 14 } 15 if len(defFields.Fields) == 0 { 16 return nil 17 } 18 19 for _, item := range defFields.Fields { 20 values := s.FindValuesByPath(path, item) 21 if values != nil { 22 return values 23 } 24 } 25 return nil 26 } 27 28 func (s *OutputService) GenText(returnedForYamlRefer bool) (lines []interface{}) { 29 simulatedFieldFromDef := domain.DefField{ 30 Fields: vari.GlobalVars.DefData.Fields, 31 Join: true, 32 } 33 s.CombineService.CombineChildrenIfNeeded(&simulatedFieldFromDef, true) 34 35 if !returnedForYamlRefer { 36 s.PrintHumanHeaderIfNeeded() 37 } 38 39 if vari.GlobalVars.ExportChildField != "" { 40 values := s.FindValuesByPath(vari.GlobalVars.ExportChildField, simulatedFieldFromDef) 41 for _, item := range values { 42 line := s.PlaceholderService.ReplacePlaceholder(item.(string)) 43 if returnedForYamlRefer { 44 lines = append(lines, line) 45 } else { 46 logUtils.PrintLine(fmt.Sprintf("%v", line) + "\n") 47 } 48 } 49 return 50 } 51 52 for _, item := range simulatedFieldFromDef.Values { 53 line := s.PlaceholderService.ReplacePlaceholder(item.(string)) 54 55 if returnedForYamlRefer { 56 lines = append(lines, line) 57 } else { 58 logUtils.PrintLine(fmt.Sprintf("%v", line) + "\n") 59 } 60 } 61 62 return 63 }