From d09399d928be6bc7cf91b9b3c1648ad68c5dd918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=94=E7=AB=9E=E5=AE=81?= Date: Thu, 8 Dec 2022 02:48:04 +0800 Subject: [PATCH] feat: export UnexpectFileMode --- index.go | 12 +++++------- job.go | 4 +--- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/index.go b/index.go index 93b35d3..59e74a6 100644 --- a/index.go +++ b/index.go @@ -10,7 +10,7 @@ import ( ) const ( - unexpectFileMode = os.ModeType &^ os.ModeDir + UnexpectFileMode = os.ModeType &^ os.ModeDir ) type counter struct { @@ -76,10 +76,7 @@ func (c *Copyer) walk(ctx context.Context) []*baseJob { } mode := stat.Mode() - if mode&unexpectFileMode != 0 { - return - } - if !mode.IsDir() { + if mode.IsRegular() { job, err := c.newJobFromFileInfo(src, stat) if err != nil { c.reportError(path, "", fmt.Errorf("make job fail, %w", err)) @@ -89,6 +86,9 @@ func (c *Copyer) walk(ctx context.Context) []*baseJob { appendJob(job) return } + if mode&UnexpectFileMode != 0 { + return + } files, err := os.ReadDir(path) if err != nil { @@ -98,8 +98,6 @@ func (c *Copyer) walk(ctx context.Context) []*baseJob { for _, file := range files { walk(src.append(file.Name())) } - - return } for _, s := range c.src { walk(s) diff --git a/job.go b/job.go index db38965..17b922e 100644 --- a/job.go +++ b/job.go @@ -34,7 +34,6 @@ type baseJob struct { copyer *Copyer source *source - name string // base name of the file size int64 // length in bytes for regular files; system-dependent for others mode os.FileMode // file mode bits modTime time.Time // modification time @@ -53,12 +52,11 @@ func (c *Copyer) newJobFromFileInfo(source *source, info os.FileInfo) (*baseJob, copyer: c, source: source, - name: info.Name(), size: info.Size(), mode: info.Mode(), 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()) }