diff options
| author | ewy <ewy0@protonmail.com> | 2026-07-11 18:05:17 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-07-11 18:05:17 +0200 |
| commit | e7d0992be6facf88c7780c5095af208ed9d4289c (patch) | |
| tree | 012ef18c3e09ffdbb35444fd3d33f504dda987f7 /runner/gnumake | |
| parent | 4f1318697af67a19144d0ce8fe0a1ccf3a0f9c37 (diff) | |
improve makefile regex, hopefully
Diffstat (limited to 'runner/gnumake')
| -rw-r--r-- | runner/gnumake/make.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/runner/gnumake/make.go b/runner/gnumake/make.go index 91f48de..9332773 100644 --- a/runner/gnumake/make.go +++ b/runner/gnumake/make.go @@ -60,13 +60,16 @@ func (m *gnumake) Index(path string, f fs.FS, _ []model.Runner) ([]model.Target, return ParseOutput(makefile), nil } -var makeRegex = regexp.MustCompile("(?m)^([a-zA-Z]*):(([ \t]*?)#(.*))?") +var makeRegex = regexp.MustCompile(`(?m)^(\S+?):[^=].*$`) func ParseOutput(input string) []model.Target { var targets []string - match := makeRegex.FindAllString(input, strings.Count(input, "\n")) + match := makeRegex.FindAllStringSubmatch(input, strings.Count(input, "\n")) for _, m := range match { - targets = append(targets, m) + if len(m) < 2 { + continue + } + targets = append(targets, m[1]) } var result []model.Target @@ -78,6 +81,7 @@ func ParseOutput(input string) []model.Target { tgt := &Target{ BaseTarget: runner.BaseTarget{ Identity: identity.New(name), + MySub: makeSub, MyTags: nil, }, Name: name, |
