mirror of
https://github.com/securego/gosec.git
synced 2024-12-26 04:25:52 +00:00
Add support for partial path match in the skip option
This commit is contained in:
parent
05738474a1
commit
3ae2762bb1
3 changed files with 22 additions and 6 deletions
12
filelist.go
12
filelist.go
|
@ -57,14 +57,24 @@ func (f *fileList) Set(path string) error {
|
||||||
|
|
||||||
func (f fileList) Contains(path string) bool {
|
func (f fileList) Contains(path string) bool {
|
||||||
for p := range f.patterns {
|
for p := range f.patterns {
|
||||||
|
if strings.Contains(p, glob.GLOB) {
|
||||||
if glob.Glob(p, path) {
|
if glob.Glob(p, path) {
|
||||||
if logger != nil {
|
if logger != nil {
|
||||||
logger.Printf("skipping: %s\n", path)
|
logger.Printf("skipping: %s\n", path)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// check if only a sub-folder of the path is excluded
|
||||||
|
if strings.Contains(path, p) {
|
||||||
|
if logger != nil {
|
||||||
|
logger.Printf("skipping: %s\n", path)
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//log.Printf("including: %s\n", path)
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -235,6 +235,12 @@ func Test_fileList_Contains(t *testing.T) {
|
||||||
args: args{path: "/baz/bar/foo_test.go"},
|
args: args{path: "/baz/bar/foo_test.go"},
|
||||||
want: true,
|
want: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "sub-folder, match",
|
||||||
|
fields: fields{patterns: []string{"vendor"}},
|
||||||
|
args: args{path: "/baz/vendor/bar/foo_test.go"},
|
||||||
|
want: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
f := newFileList(tt.fields.patterns...)
|
f := newFileList(tt.fields.patterns...)
|
||||||
|
|
2
main.go
2
main.go
|
@ -155,7 +155,7 @@ func main() {
|
||||||
|
|
||||||
// Exclude files
|
// Exclude files
|
||||||
excluded := newFileList("*_test.go")
|
excluded := newFileList("*_test.go")
|
||||||
flag.Var(excluded, "skip", "File pattern to exclude from scan. Uses simple * globs and requires full match")
|
flag.Var(excluded, "skip", "File pattern to exclude from scan. Uses simple * globs and requires full or partial match")
|
||||||
|
|
||||||
incRules := ""
|
incRules := ""
|
||||||
flag.StringVar(&incRules, "include", "", "Comma separated list of rules IDs to include. (see rule list)")
|
flag.StringVar(&incRules, "include", "", "Comma separated list of rules IDs to include. (see rule list)")
|
||||||
|
|
Loading…
Reference in a new issue