shadow symlink file instead of skip
This commit is contained in:
parent
c305472279
commit
cc35564b1d
@ -93,5 +93,14 @@ func (b *Build) cpNonStandardLegacy() {
|
||||
|
||||
// skipCopy skip copy .git dir and irregular files
|
||||
func skipCopy(src string, info os.FileInfo) (bool, error) {
|
||||
return strings.HasSuffix(src, "/.git") || (!info.IsDir() && !info.Mode().IsRegular()), nil
|
||||
irregularModeType := os.ModeNamedPipe | os.ModeSocket | os.ModeDevice | os.ModeCharDevice | os.ModeIrregular
|
||||
if strings.HasSuffix(src, "/.git") {
|
||||
log.Infof("Skip .git dir [%s]", src)
|
||||
return true, nil
|
||||
}
|
||||
if info.Mode()&irregularModeType != 0 {
|
||||
log.Warnf("Skip file [%s], the file mode is [%s]", src, info.Mode().String())
|
||||
return true, nil
|
||||
}
|
||||
return false, nil
|
||||
}
|
||||
|
@ -118,7 +118,7 @@ func TestSkipCopy(t *testing.T) {
|
||||
"irregular file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeIrregular}, expected: true},
|
||||
"dir file": {inputSrc: "/test", inputInfo: MockFile{isDir: true, mode: os.ModeDir}, expected: false},
|
||||
"temporary file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeTemporary}, expected: false},
|
||||
"symlink file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeSymlink}, expected: true},
|
||||
"symlink file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeSymlink}, expected: false},
|
||||
"device file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeDevice}, expected: true},
|
||||
"named pipe file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeNamedPipe}, expected: true},
|
||||
"socket file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeSocket}, expected: true},
|
||||
|
Loading…
Reference in New Issue
Block a user