From 5cc306154d83a14292c892c3f85ae9ca5c658cc7 Mon Sep 17 00:00:00 2001 From: Danilo Patrucco Date: Fri, 5 Jul 2024 15:28:38 -0400 Subject: [PATCH] add parseErrorDetails for parsing of errors and code lines Signed-off-by: Danilo Patrucco --- pkg/lint/rules/ignore.go | 26 ++++++++++++++++++++++++++ pkg/lint/rules/utils.go | 18 ++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 pkg/lint/rules/ignore.go create mode 100644 pkg/lint/rules/utils.go diff --git a/pkg/lint/rules/ignore.go b/pkg/lint/rules/ignore.go new file mode 100644 index 000000000..f563eb067 --- /dev/null +++ b/pkg/lint/rules/ignore.go @@ -0,0 +1,26 @@ +package rules + +import ( + "bufio" + "os" + "strings" +) + +func ParseIgnoreFile(filePath string) ([]string, error) { + var patterns []string + file, err := os.Open(filePath) + if err != nil { + return nil, err + } + defer file.Close() + + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := strings.TrimSpace(scanner.Text()) + if line != "" && !strings.HasPrefix(line, "#") { + patterns = append(patterns, line) + } + } + + return patterns, scanner.Err() +} \ No newline at end of file diff --git a/pkg/lint/rules/utils.go b/pkg/lint/rules/utils.go new file mode 100644 index 000000000..0353c2378 --- /dev/null +++ b/pkg/lint/rules/utils.go @@ -0,0 +1,18 @@ +package rules + +import ( + "regexp" + "strconv" +) + +func parseErrorDetails(err string) (string, int, int) { + re := regexp.MustCompile(`([^:]+):(\d+):(\d+): executing`) + matches := re.FindStringSubmatch(err) + if len(matches) < 4 { + return "", 0, 0 // Return default values if the format does not match + } + + line, _ := strconv.Atoi(matches[2]) + col, _ := strconv.Atoi(matches[3]) + return matches[1], line, col +} \ No newline at end of file