зеркало из https://github.com/mozilla/scribe.git
Родитель
59f11e2a17
Коммит
5418292142
|
@ -235,6 +235,17 @@ func (s *simpleFileLocator) locate(target string, useRegexp bool) error {
|
|||
return s.locateInner(target, useRegexp, "")
|
||||
}
|
||||
|
||||
func (s *simpleFileLocator) symFollowIsRegular(path string) (bool, error) {
|
||||
fi, err := os.Stat(path)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
if fi.Mode().IsRegular() {
|
||||
return true, nil
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
|
||||
func (s *simpleFileLocator) locateInner(target string, useRegexp bool, path string) error {
|
||||
var (
|
||||
spath string
|
||||
|
@ -288,6 +299,22 @@ func (s *simpleFileLocator) locateInner(target string, useRegexp bool, path stri
|
|||
s.matches = append(s.matches, fname)
|
||||
}
|
||||
}
|
||||
} else if (x.Mode() & os.ModeSymlink) > 0 {
|
||||
isregsym, err := s.symFollowIsRegular(fname)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if isregsym {
|
||||
if !useRegexp {
|
||||
if x.Name() == target {
|
||||
s.matches = append(s.matches, fname)
|
||||
}
|
||||
} else {
|
||||
if re.MatchString(x.Name()) {
|
||||
s.matches = append(s.matches, fname)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
testfile1
|
|
@ -49,6 +49,15 @@
|
|||
}
|
||||
},
|
||||
|
||||
{
|
||||
"object": "testfile2-version",
|
||||
"filecontent": {
|
||||
"path": "${root}",
|
||||
"file": ".*file2",
|
||||
"expression": "^Version = (\\S+)"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"object": "anyfile",
|
||||
"filecontent": {
|
||||
|
@ -134,6 +143,17 @@
|
|||
}
|
||||
},
|
||||
|
||||
{
|
||||
"test": "filecontent4",
|
||||
"description": "version is ok",
|
||||
"expectedresult": false,
|
||||
"object": "testfile2-version",
|
||||
"evr": {
|
||||
"operation": "<",
|
||||
"value": "0.4z"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"test": "anyfile0",
|
||||
"expectedresult": true,
|
||||
|
|
Загрузка…
Ссылка в новой задаче