diff --git a/cmd/generate_ruleset.go b/cmd/generate_ruleset.go index af7800b3..a8df8828 100644 --- a/cmd/generate_ruleset.go +++ b/cmd/generate_ruleset.go @@ -23,6 +23,8 @@ func GetGenerateRulesetCommand() *cobra.Command { Example: "vacuum generate-ruleset recommended | all ", RunE: func(cmd *cobra.Command, args []string) error { + PrintBanner() + // check for file args if len(args) < 1 { errText := "please supply 'recommended' or 'all' and a file path to output the ruleset." diff --git a/cmd/html_report.go b/cmd/html_report.go index ecdc3440..b554ab44 100644 --- a/cmd/html_report.go +++ b/cmd/html_report.go @@ -29,6 +29,8 @@ func GetHTMLReportCommand() *cobra.Command { Example: "vacuum html-report ", RunE: func(cmd *cobra.Command, args []string) error { + PrintBanner() + // check for file args if len(args) == 0 { errText := "please supply an OpenAPI specification to generate an HTML Report" diff --git a/cmd/lint.go b/cmd/lint.go index e73a221d..5c82efa9 100644 --- a/cmd/lint.go +++ b/cmd/lint.go @@ -9,7 +9,6 @@ import ( "github.com/daveshanley/vacuum/motor" "github.com/daveshanley/vacuum/rulesets" "github.com/pterm/pterm" - "github.com/pterm/pterm/putils" "github.com/spf13/cobra" "io/ioutil" "os" @@ -34,18 +33,13 @@ func GetLintCommand() *cobra.Command { rulesetFlag, _ := cmd.Flags().GetString("ruleset") silent, _ := cmd.Flags().GetBool("silent") - pterm.Println() - if !silent { - _ = pterm.DefaultBigText.WithLetters( - putils.LettersFromStringWithRGB("vacuum", pterm.NewRGB(153, 51, 255))).Render() - pterm.Printf("version: %s\n\n", Version) - pterm.Println() + PrintBanner() } // check for file args if len(args) != 1 { - pterm.Error.Println("please supply OpenAPI specification(s) to lint") + pterm.Error.Println("Please supply OpenAPI specification(s) to lint") pterm.Println() return fmt.Errorf("no files supplied") } diff --git a/cmd/root.go b/cmd/root.go index 86360af7..4c8ae6a9 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -5,7 +5,6 @@ package cmd import ( "github.com/pterm/pterm" - "github.com/pterm/pterm/putils" "github.com/spf13/cobra" "os" ) @@ -24,11 +23,7 @@ var ( Long: `vacuum is a very, very fast OpenAPI linter. It will suck all the lint off your spec in milliseconds`, RunE: func(cmd *cobra.Command, args []string) error { - pterm.Println() - - pterm.DefaultBigText.WithLetters( - putils.LettersFromStringWithRGB("vacuum", pterm.NewRGB(153, 51, 255))).Render() - pterm.Printf("version: %s\n\n", Version) + PrintBanner() pterm.Println("To see something useful, try 'vacuum lint '") diff --git a/cmd/shared_functions.go b/cmd/shared_functions.go index 3ed681d1..9fe459c9 100644 --- a/cmd/shared_functions.go +++ b/cmd/shared_functions.go @@ -7,6 +7,7 @@ import ( "fmt" "github.com/daveshanley/vacuum/rulesets" "github.com/pterm/pterm" + "github.com/pterm/pterm/putils" "os" "time" ) @@ -34,3 +35,11 @@ func RenderTime(timeFlag bool, duration time.Duration, fi os.FileInfo) { pterm.Println() } } + +func PrintBanner() { + pterm.Println() + _ = pterm.DefaultBigText.WithLetters( + putils.LettersFromStringWithRGB("vacuum", pterm.NewRGB(153, 51, 255))).Render() + pterm.Printf("version: %s | compiled: %s\n\n", Version, Date) + pterm.Println() +} diff --git a/cmd/shared_functions_test.go b/cmd/shared_functions_test.go deleted file mode 100644 index 9eb800a6..00000000 --- a/cmd/shared_functions_test.go +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2022 Dave Shanley / Quobix -// SPDX-License-Identifier: MIT - -package cmd - -import ( - "github.com/daveshanley/vacuum/rulesets" - "github.com/stretchr/testify/assert" - "io/ioutil" - "os" - "testing" - "time" -) - -func TestBuildRuleSetFromUserSuppliedSet_All(t *testing.T) { - rsFile := "../rulesets/examples/all-ruleset.yaml" - rsBytes, _ := ioutil.ReadFile(rsFile) - rsets := rulesets.BuildDefaultRuleSets() - rs, err := BuildRuleSetFromUserSuppliedSet(rsBytes, rsets) - assert.NoError(t, err) - assert.Len(t, rs.Rules, 47) -} - -func TestBuildRuleSetFromUserSuppliedSet_None(t *testing.T) { - rsFile := "../rulesets/examples/norules-ruleset.yaml" - rsets := rulesets.BuildDefaultRuleSets() - rsBytes, _ := ioutil.ReadFile(rsFile) - rs, err := BuildRuleSetFromUserSuppliedSet(rsBytes, rsets) - assert.NoError(t, err) - assert.Len(t, rs.Rules, 0) -} - -func TestBuildRuleSetFromUserSuppliedSet_BadFile(t *testing.T) { - rsFile := "../rulesets/examples/don't-exist.yaml" - rsets := rulesets.BuildDefaultRuleSets() - rsBytes, _ := ioutil.ReadFile(rsFile) - rs, err := BuildRuleSetFromUserSuppliedSet(rsBytes, rsets) - assert.Error(t, err) - assert.Nil(t, rs) -} - -func TestBuildRuleSetFromUserSuppliedSet_BadRuleset(t *testing.T) { - rsFile := "../rulesets/schemas/ruleset.schema.json" // not a ruleset! - rsets := rulesets.BuildDefaultRuleSets() - rsBytes, _ := ioutil.ReadFile(rsFile) - rs, err := BuildRuleSetFromUserSuppliedSet(rsBytes, rsets) - assert.Error(t, err) - assert.Nil(t, rs) -} - -func TestRenderTime(t *testing.T) { - // nothing really to test here, however I don't want coverage to drop. - fi, _ := os.Stat("shared_functions.go") - RenderTime(true, time.Microsecond, fi) - RenderTime(false, time.Millisecond, fi) -} diff --git a/cmd/spectral_report.go b/cmd/spectral_report.go index 719043ab..2f7cab86 100644 --- a/cmd/spectral_report.go +++ b/cmd/spectral_report.go @@ -26,6 +26,8 @@ func GetSpectralReportCommand() *cobra.Command { Example: "vacuum report my-awesome-spec.yaml ", RunE: func(cmd *cobra.Command, args []string) error { + PrintBanner() + // check for file args if len(args) == 0 { errText := "please supply an OpenAPI specification to generate a report" diff --git a/cmd/vacuum_report.go b/cmd/vacuum_report.go index 38f8b4b9..7321edcd 100644 --- a/cmd/vacuum_report.go +++ b/cmd/vacuum_report.go @@ -31,6 +31,8 @@ func GetVacuumReportCommand() *cobra.Command { Example: "vacuum report ", RunE: func(cmd *cobra.Command, args []string) error { + PrintBanner() + // check for file args if len(args) == 0 { errText := "please supply an OpenAPI specification to generate a report" diff --git a/vacuum.go b/vacuum.go index 0e0e31e8..5b354d14 100644 --- a/vacuum.go +++ b/vacuum.go @@ -2,6 +2,7 @@ package main import ( "github.com/daveshanley/vacuum/cmd" + "time" ) var version string @@ -12,5 +13,11 @@ func main() { if version == "" { version = "latest" } + if commit == "" { + commit = "latest" + } + if date == "" { + date = time.Now().Format("2006-01-02 15:04:05 MST") + } cmd.Execute(version, commit, date) }