mirror of
https://github.com/samuelncui/acp.git
synced 2026-01-03 01:55:14 +00:00
feat: export UnexpectFileMode
This commit is contained in:
12
index.go
12
index.go
@@ -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
4
job.go
@@ -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())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user