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
|
// skipCopy skip copy .git dir and irregular files
|
||||||
func skipCopy(src string, info os.FileInfo) (bool, error) {
|
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},
|
"irregular file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeIrregular}, expected: true},
|
||||||
"dir file": {inputSrc: "/test", inputInfo: MockFile{isDir: true, mode: os.ModeDir}, expected: false},
|
"dir file": {inputSrc: "/test", inputInfo: MockFile{isDir: true, mode: os.ModeDir}, expected: false},
|
||||||
"temporary file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeTemporary}, 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},
|
"device file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeDevice}, expected: true},
|
||||||
"named pipe file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeNamedPipe}, 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},
|
"socket file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeSocket}, expected: true},
|
||||||
|
Loading…
Reference in New Issue
Block a user