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  }