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 (
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)

4
job.go
View File

@@ -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())
}