diff --git a/go.mod b/go.mod index 7ce79d5e2..230937772 100644 --- a/go.mod +++ b/go.mod @@ -43,13 +43,13 @@ require ( github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.15.0 github.com/stevenle/topsort v0.2.0 - github.com/turbot/go-kit v0.6.0-alpha.1 + github.com/turbot/go-kit v0.7.0 github.com/turbot/steampipe-cloud-sdk-go v0.6.0 github.com/turbot/steampipe-plugin-sdk/v5 v5.4.1 github.com/xlab/treeprint v1.2.0 github.com/zclconf/go-cty v1.13.1 github.com/zclconf/go-cty-yaml v1.0.3 - golang.org/x/exp v0.0.0-20221110155412-d0897a79cd37 + golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 golang.org/x/sync v0.2.0 golang.org/x/text v0.9.0 google.golang.org/grpc v1.55.0 diff --git a/go.sum b/go.sum index c3acf5ed4..00a2d0518 100644 --- a/go.sum +++ b/go.sum @@ -1010,8 +1010,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= @@ -1027,8 +1027,8 @@ github.com/tkrajina/go-reflector v0.5.6/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMc github.com/tmc/grpc-websocket-proxy v0.0.0-20171017195756-830351dc03c6/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tombuildsstuff/giovanni v0.15.1/go.mod h1:0TZugJPEtqzPlMpuJHYfXY6Dq2uLPrXf98D2XQSxNbA= -github.com/turbot/go-kit v0.6.0-alpha.1 h1:mm1QpkwknuJQfA7oKzyzMiDRx5GsKlzxwsNa7n+Ttj4= -github.com/turbot/go-kit v0.6.0-alpha.1/go.mod h1:oP9gLk6bETL4nkEuujZZbOlcv9jnHQlf7DYcI/+Ke8Q= +github.com/turbot/go-kit v0.7.0 h1:Jiua34hnICSWzJgYmqup/sY7G/1jlMqcElJgDIM8uFU= +github.com/turbot/go-kit v0.7.0/go.mod h1:QIOX91BIxQ/1JEtM4rIHWDito3c3GUP2Z+dUT5F6z94= github.com/turbot/go-prompt v0.2.6-steampipe.0.0.20221028122246-eb118ec58d50 h1:zs87uA6QZsYLk4RRxDOIxt8ro/B2V6HzoMWm05Lo7ao= github.com/turbot/go-prompt v0.2.6-steampipe.0.0.20221028122246-eb118ec58d50/go.mod h1:vFnjEGDIIA/Lib7giyE4E9c50Lvl8j0S+7FVlAwDAVw= github.com/turbot/steampipe-cloud-sdk-go v0.6.0 h1:ufAxOpKS1uq7eejuE5sfEu1+d7QAd0RBjl8Bn6+mIs8= @@ -1175,8 +1175,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20221110155412-d0897a79cd37 h1:wKMvZzBFHbOCGvF2OmxR5Fqv/jDlkt7slnPz5ejEU8A= -golang.org/x/exp v0.0.0-20221110155412-d0897a79cd37/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 h1:k/i9J1pBpvlfR+9QsetwPyERsqu1GIbi967PQMq3Ivc= +golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/pkg/control/controldisplay/format_resolver.go b/pkg/control/controldisplay/format_resolver.go index 96ac12707..0264d2cac 100644 --- a/pkg/control/controldisplay/format_resolver.go +++ b/pkg/control/controldisplay/format_resolver.go @@ -2,18 +2,17 @@ package controldisplay import ( "fmt" - "os" - "path/filepath" + "github.com/turbot/go-kit/files" "github.com/turbot/steampipe/pkg/constants" "github.com/turbot/steampipe/pkg/export" "github.com/turbot/steampipe/pkg/filepaths" ) type FormatResolver struct { + formatterByName map[string]Formatter // array of unique formatters used for export exportFormatters []Formatter - formatterByName map[string]Formatter } func NewFormatResolver() (*FormatResolver, error) { @@ -90,15 +89,17 @@ func (r *FormatResolver) controlExporters() []export.Exporter { } func loadAvailableTemplates() ([]*OutputTemplate, error) { - templateDir := filepaths.EnsureTemplateDir() - templateDirectories, err := os.ReadDir(templateDir) + templateDirectories, err := files.ListFiles(filepaths.EnsureTemplateDir(), &files.ListOptions{ + Flags: files.DirectoriesFlat | files.NotEmpty, + Exclude: []string{"./.*"}, + }) if err != nil { return nil, err } - templates := make([]*OutputTemplate, len(templateDirectories)) - for idx, f := range templateDirectories { - templates[idx] = NewOutputTemplate(filepath.Join(templateDir, f.Name())) - } + templates := []*OutputTemplate{} + for _, templateDirectory := range templateDirectories { + templates = append(templates, NewOutputTemplate(templateDirectory)) + } return templates, nil } diff --git a/pkg/initialisation/init_data.go b/pkg/initialisation/init_data.go index 909229747..622297ca0 100644 --- a/pkg/initialisation/init_data.go +++ b/pkg/initialisation/init_data.go @@ -3,6 +3,7 @@ package initialisation import ( "context" "fmt" + "github.com/jackc/pgx/v5" "github.com/spf13/viper" "github.com/turbot/go-kit/helpers"