Skip to content

Commit

Permalink
Fix the skip-dirs option.
Browse files Browse the repository at this point in the history
Prior to this change the SkipDir runner was not skipping files such as
`foo/bar/baz.go` with a `skip-dir` entry of `foo/bar` when the `run`
command was invoked with an argument of `foo/...`.  This is both a
surprising and problematic behavior change.

The pathology was:

1. `shouldPassIssue()` was receiving an input like `foo/bar/baz.go`
2. `shouldPassIssue()` would call `p.getLongestArgRelativeIssuePath()`
   which was returning `bar`, not `foo/bar` as expected.
3. The reason for this was because inside of
   `getLongestArgRelativeIssuePath()` it was trimming the prefix that
   matched the path prefix (e.g. `foo/`).

If you have the file structure:

  - foo/bar/baz.go
  - bur/bar/baz.go

There is no way to isolate `foo/bar` from `bur/baz` without strictly
controlling both your `skip-dirs` configuration and the arguments to
`run`.

The rest of the logic to skip files that don't match `run`'s argument
is valid, however the regexp should be evaluated based on the
`filepath.Dir()` of the input (e.g. `foo/bar`) and not the truncated
version of the issue's filepath.

Fixes: #301
  • Loading branch information
sean- authored and jirfag committed Dec 22, 2018
1 parent e72fe05 commit 441bdb3
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions pkg/result/processors/skip_dirs.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,7 @@ func (p *SkipDirs) getLongestArgRelativeIssuePath(i *result.Issue) string {
continue
}

relPath := strings.TrimPrefix(issueAbsPath, arg)
relPath = strings.TrimPrefix(relPath, string(filepath.Separator))
return relPath
return i.FilePath()
}

p.log.Infof("Issue path %q isn't relative to any of run args", i.FilePath())
Expand Down

0 comments on commit 441bdb3

Please sign in to comment.