github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/control/controldisplay/output_template.go (about) 1 package controldisplay 2 3 import ( 4 "fmt" 5 "path/filepath" 6 "strings" 7 ) 8 9 type OutputTemplate struct { 10 TemplatePath string 11 FormatName string 12 FileExtension string 13 FormatFullName string 14 } 15 16 func NewOutputTemplate(directoryPath string) *OutputTemplate { 17 format := new(OutputTemplate) 18 format.TemplatePath = directoryPath 19 20 directoryName := filepath.Base(directoryPath) 21 // does the directory name include an extension? 22 ext := filepath.Ext(directoryName) 23 format.FormatFullName = directoryName 24 format.FormatName = strings.TrimSuffix(directoryName, ext) 25 format.FileExtension = fmt.Sprintf(".%s", directoryName) 26 27 return format 28 } 29 30 func (ft *OutputTemplate) String() string { 31 return fmt.Sprintf("( %s %s %s %s )", ft.TemplatePath, ft.FormatName, ft.FileExtension, ft.FormatFullName) 32 }