diff --git a/pkg/build/legacy.go b/pkg/build/legacy.go index c4ec93c..296f777 100644 --- a/pkg/build/legacy.go +++ b/pkg/build/legacy.go @@ -93,5 +93,5 @@ 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.Mode().IsRegular(), nil + return strings.HasSuffix(src, "/.git") || (!info.IsDir() && !info.Mode().IsRegular()), nil } diff --git a/pkg/build/legacy_test.go b/pkg/build/legacy_test.go index 5e08322..2bd932c 100644 --- a/pkg/build/legacy_test.go +++ b/pkg/build/legacy_test.go @@ -116,7 +116,7 @@ func TestSkipCopy(t *testing.T) { "src with /.gita suffix": {inputSrc: "/test/.gita", inputInfo: MockFile{mode: 0}, expected: false}, "src with /.git in middle": {inputSrc: "/test/.git/test", inputInfo: MockFile{mode: 0}, expected: false}, "irregular file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeIrregular}, expected: true}, - "dir file": {inputSrc: "/test", inputInfo: MockFile{isDir: true, mode: os.ModeDir}, 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}, "device file": {inputSrc: "/test", inputInfo: MockFile{mode: os.ModeDevice}, expected: true},