From 6a079d44bebe7e4ebde2ff49f6dd3fb1775c46f1 Mon Sep 17 00:00:00 2001 From: Emily McMullan Date: Tue, 26 Sep 2023 17:46:57 -0400 Subject: [PATCH 1/2] do not create discovery dir for convert Signed-off-by: Emily McMullan --- main.go | 2 +- pkg/conversion/convert.go | 12 +++++++----- pkg/execution/execute.go | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 409a43f2..d70929e5 100644 --- a/main.go +++ b/main.go @@ -48,7 +48,7 @@ func main() { if err != nil { fmt.Println(err) } - _, err = conversion.ConvertWindupRulesetsToAnalyzer(rulesets, location, outputDir, flattenRulesets) + _, err = conversion.ConvertWindupRulesetsToAnalyzer(rulesets, location, outputDir, flattenRulesets, os.Args[1]) if err != nil { log.Fatal(err) } diff --git a/pkg/conversion/convert.go b/pkg/conversion/convert.go index 6acb9941..1dd10704 100644 --- a/pkg/conversion/convert.go +++ b/pkg/conversion/convert.go @@ -22,11 +22,13 @@ type analyzerRules struct { relativePath string } -func ConvertWindupRulesetsToAnalyzer(windups []windup.Ruleset, baseLocation, outputDir string, flattenRulesets bool) (map[string]*analyzerRules, error) { - // Write discovery rules - err := writeDiscoveryRules(outputDir) - if err != nil { - return nil, err +func ConvertWindupRulesetsToAnalyzer(windups []windup.Ruleset, baseLocation, outputDir string, flattenRulesets bool, cmd string) (map[string]*analyzerRules, error) { + if cmd != "convert" { + // Write discovery rules + err := writeDiscoveryRules(outputDir) + if err != nil { + return nil, err + } } outputRulesets := map[string]*analyzerRules{} diff --git a/pkg/execution/execute.go b/pkg/execution/execute.go index 85013660..eb3bb2a1 100644 --- a/pkg/execution/execute.go +++ b/pkg/execution/execute.go @@ -136,7 +136,7 @@ func ExecuteRulesets(rulesets []windup.Ruleset, baseLocation, datadir string) (s for _, ruleset := range rulesets { sourceFiles = append(sourceFiles, ruleset.SourceFile) } - conversion.ConvertWindupRulesetsToAnalyzer(rulesets, baseLocation, filepath.Join(dir, "rules"), true) + conversion.ConvertWindupRulesetsToAnalyzer(rulesets, baseLocation, filepath.Join(dir, "rules"), true, "") // Template config file for analyzer providerConfig := []provider.Config{ { From 9fbbb1e9aa06dde956a0825b69bc4196ce5f8e7e Mon Sep 17 00:00:00 2001 From: Emily McMullan Date: Wed, 25 Oct 2023 10:25:27 -0400 Subject: [PATCH 2/2] do not pass subcommand value for discovery rules dir Signed-off-by: Emily McMullan --- main.go | 6 +++--- pkg/conversion/convert.go | 5 ++--- pkg/execution/execute.go | 12 ++++++------ 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index d70929e5..6d227444 100644 --- a/main.go +++ b/main.go @@ -48,7 +48,7 @@ func main() { if err != nil { fmt.Println(err) } - _, err = conversion.ConvertWindupRulesetsToAnalyzer(rulesets, location, outputDir, flattenRulesets, os.Args[1]) + _, err = conversion.ConvertWindupRulesetsToAnalyzer(rulesets, location, outputDir, flattenRulesets, false) if err != nil { log.Fatal(err) } @@ -71,7 +71,7 @@ func main() { totalTests := 0 for _, test := range ruletests { fmt.Println("Executing " + test.SourceFile) - successes, total, err := execution.ExecuteTest(test, location) + successes, total, err := execution.ExecuteTest(test, location, true) if err != nil { // TODO should we exit here? fmt.Println(err) @@ -104,7 +104,7 @@ func main() { if err != nil { fmt.Println(err) } - output, dir, err := execution.ExecuteRulesets(rulesets, location, data) + output, dir, err := execution.ExecuteRulesets(rulesets, location, data, false) fmt.Println(output, dir, err) } } diff --git a/pkg/conversion/convert.go b/pkg/conversion/convert.go index 1dd10704..36ee876e 100644 --- a/pkg/conversion/convert.go +++ b/pkg/conversion/convert.go @@ -22,9 +22,8 @@ type analyzerRules struct { relativePath string } -func ConvertWindupRulesetsToAnalyzer(windups []windup.Ruleset, baseLocation, outputDir string, flattenRulesets bool, cmd string) (map[string]*analyzerRules, error) { - if cmd != "convert" { - // Write discovery rules +func ConvertWindupRulesetsToAnalyzer(windups []windup.Ruleset, baseLocation, outputDir string, flattenRulesets bool, writeDisoveryRule bool) (map[string]*analyzerRules, error) { + if writeDisoveryRule { err := writeDiscoveryRules(outputDir) if err != nil { return nil, err diff --git a/pkg/execution/execute.go b/pkg/execution/execute.go index eb3bb2a1..53eeb145 100644 --- a/pkg/execution/execute.go +++ b/pkg/execution/execute.go @@ -61,7 +61,7 @@ const ( ` ) -func ExecuteRulesets(rulesets []windup.Ruleset, baseLocation, datadir string) (string, string, error) { +func ExecuteRulesets(rulesets []windup.Ruleset, baseLocation, datadir string, writeDiscoveryRules bool) (string, string, error) { datadir, err := filepath.Abs(datadir) if err != nil { return "", "", err @@ -136,7 +136,7 @@ func ExecuteRulesets(rulesets []windup.Ruleset, baseLocation, datadir string) (s for _, ruleset := range rulesets { sourceFiles = append(sourceFiles, ruleset.SourceFile) } - conversion.ConvertWindupRulesetsToAnalyzer(rulesets, baseLocation, filepath.Join(dir, "rules"), true, "") + conversion.ConvertWindupRulesetsToAnalyzer(rulesets, baseLocation, filepath.Join(dir, "rules"), true, writeDiscoveryRules) // Template config file for analyzer providerConfig := []provider.Config{ { @@ -215,8 +215,8 @@ func writeJSON(content interface{}, dest string) error { return nil } -func ExecuteTest(test windup.Ruletest, location string) (int, int, error) { - violations, err := getViolations(test, location) +func ExecuteTest(test windup.Ruletest, location string, writeDiscoveryRules bool) (int, int, error) { + violations, err := getViolations(test, location, writeDiscoveryRules) total := 0 successes := 0 for _, ruleset := range test.Ruleset { @@ -254,7 +254,7 @@ func ExecuteTest(test windup.Ruletest, location string) (int, int, error) { return successes, total, err } -func getViolations(test windup.Ruletest, baseLocation string) ([]konveyor.RuleSet, error) { +func getViolations(test windup.Ruletest, baseLocation string, writeDiscoveryRules bool) ([]konveyor.RuleSet, error) { rulesets := []windup.Ruleset{} if len(test.RulePath) == 0 { // use the test name, to move up a folder and get the rule @@ -300,7 +300,7 @@ func getViolations(test windup.Ruletest, baseLocation string) ([]konveyor.RuleSe } } } - _, dir, err := ExecuteRulesets(rulesets, baseLocation, test.TestDataPath) + _, dir, err := ExecuteRulesets(rulesets, baseLocation, test.TestDataPath, writeDiscoveryRules) if err != nil { return nil, err }