diff --git a/main.go b/main.go index 409a43f2..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) + _, 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 6acb9941..36ee876e 100644 --- a/pkg/conversion/convert.go +++ b/pkg/conversion/convert.go @@ -22,11 +22,12 @@ 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, writeDisoveryRule bool) (map[string]*analyzerRules, error) { + if writeDisoveryRule { + 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..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 }