mirror of
https://github.com/securego/gosec.git
synced 2024-11-05 19:45:51 +00:00
Merge pull request #18 from HewlettPackard/issue16
Expand cases accepted by -exclude
This commit is contained in:
commit
2d0a26dafe
1 changed files with 26 additions and 4 deletions
30
filelist.go
30
filelist.go
|
@ -15,6 +15,8 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -30,17 +32,37 @@ func (f *filelist) Set(val string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *filelist) Contains(path string) bool {
|
func (f *filelist) Contains(pathname string) bool {
|
||||||
|
|
||||||
// Ignore dot files
|
// Ignore dot files
|
||||||
_, filename := filepath.Split(path)
|
_, filename := filepath.Split(pathname)
|
||||||
if strings.HasPrefix(filename, ".") {
|
if strings.HasPrefix(filename, ".") {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cwd, _ := os.Getwd()
|
||||||
|
abs, _ := filepath.Abs(pathname)
|
||||||
|
|
||||||
for _, pattern := range *f {
|
for _, pattern := range *f {
|
||||||
// Match entire path
|
|
||||||
if rv, err := filepath.Match(pattern, path); rv && err == nil {
|
// Also check working directory
|
||||||
|
rel := path.Join(cwd, pattern)
|
||||||
|
|
||||||
|
// Match pattern directly
|
||||||
|
if matched, _ := filepath.Match(pattern, pathname); matched {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
// Also check pattern relative to working directory
|
||||||
|
if matched, _ := filepath.Match(rel, pathname); matched {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finally try absolute path
|
||||||
|
st, e := os.Stat(rel)
|
||||||
|
if !os.IsNotExist(e) && st.IsDir() && strings.HasPrefix(abs, rel) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue