feat: export UnexpectFileMode

This commit is contained in:
崔竞宁
2022-12-08 02:48:04 +08:00
parent 9fa93b905b
commit d09399d928
2 changed files with 6 additions and 10 deletions

View File

@@ -10,7 +10,7 @@ import (
) )
const ( const (
unexpectFileMode = os.ModeType &^ os.ModeDir UnexpectFileMode = os.ModeType &^ os.ModeDir
) )
type counter struct { type counter struct {
@@ -76,10 +76,7 @@ func (c *Copyer) walk(ctx context.Context) []*baseJob {
} }
mode := stat.Mode() mode := stat.Mode()
if mode&unexpectFileMode != 0 { if mode.IsRegular() {
return
}
if !mode.IsDir() {
job, err := c.newJobFromFileInfo(src, stat) job, err := c.newJobFromFileInfo(src, stat)
if err != nil { if err != nil {
c.reportError(path, "", fmt.Errorf("make job fail, %w", err)) c.reportError(path, "", fmt.Errorf("make job fail, %w", err))
@@ -89,6 +86,9 @@ func (c *Copyer) walk(ctx context.Context) []*baseJob {
appendJob(job) appendJob(job)
return return
} }
if mode&UnexpectFileMode != 0 {
return
}
files, err := os.ReadDir(path) files, err := os.ReadDir(path)
if err != nil { if err != nil {
@@ -98,8 +98,6 @@ func (c *Copyer) walk(ctx context.Context) []*baseJob {
for _, file := range files { for _, file := range files {
walk(src.append(file.Name())) walk(src.append(file.Name()))
} }
return
} }
for _, s := range c.src { for _, s := range c.src {
walk(s) walk(s)

4
job.go
View File

@@ -34,7 +34,6 @@ type baseJob struct {
copyer *Copyer copyer *Copyer
source *source source *source
name string // base name of the file
size int64 // length in bytes for regular files; system-dependent for others size int64 // length in bytes for regular files; system-dependent for others
mode os.FileMode // file mode bits mode os.FileMode // file mode bits
modTime time.Time // modification time modTime time.Time // modification time
@@ -53,12 +52,11 @@ func (c *Copyer) newJobFromFileInfo(source *source, info os.FileInfo) (*baseJob,
copyer: c, copyer: c,
source: source, source: source,
name: info.Name(),
size: info.Size(), size: info.Size(),
mode: info.Mode(), mode: info.Mode(),
modTime: info.ModTime(), modTime: info.ModTime(),
} }
if job.mode.IsDir() || job.mode&unexpectFileMode != 0 { if !job.mode.IsRegular() {
return nil, fmt.Errorf("unexpected file, path= %s", source.src()) return nil, fmt.Errorf("unexpected file, path= %s", source.src())
} }