package Filesystem
|
|
|
|
import (
|
|
"crypto/sha1"
|
|
"regexp"
|
|
|
|
"PackageManager/Variables"
|
|
)
|
|
|
|
var (
|
|
sha1Hash = sha1.New()
|
|
|
|
PruneRegex []*regexp.Regexp
|
|
IgnoreRegex []*regexp.Regexp
|
|
)
|
|
|
|
func init() {
|
|
var e error
|
|
|
|
e = InitPruneRegex()
|
|
if e != nil {
|
|
panic(e)
|
|
}
|
|
|
|
e = InitIgnoreRegex()
|
|
if e != nil {
|
|
panic(e)
|
|
}
|
|
}
|
|
|
|
func InitPruneRegex() error {
|
|
var (
|
|
r *regexp.Regexp
|
|
s string
|
|
e error
|
|
)
|
|
|
|
for _, s = range Variables.PruneRegexPaths {
|
|
r, e = regexp.Compile(s)
|
|
if e != nil {
|
|
return e
|
|
}
|
|
PruneRegex = append(PruneRegex, r)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func InitIgnoreRegex() error {
|
|
var (
|
|
r *regexp.Regexp
|
|
s string
|
|
e error
|
|
)
|
|
|
|
for _, s = range Variables.IgnoreRegexPaths {
|
|
r, e = regexp.Compile(s)
|
|
if e != nil {
|
|
return e
|
|
}
|
|
IgnoreRegex = append(IgnoreRegex, r)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func matchAny(p string, a []*regexp.Regexp) bool {
|
|
var (
|
|
regex *regexp.Regexp
|
|
match bool
|
|
)
|
|
for _, regex = range a {
|
|
match = regex.MatchString(p)
|
|
if match == true {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|