mirror of
https://github.com/samuelncui/acp.git
synced 2025-12-23 05:05:15 +00:00
feat: change report
This commit is contained in:
@@ -73,8 +73,8 @@ func main() {
|
||||
}
|
||||
|
||||
for _, s := range r.NoSpaceSources {
|
||||
logrus.Infof("restore unfinished: base= '%s' relative_path= '%s'", s.Base, s.RelativePath)
|
||||
opts = append(opts, acp.AccurateSource(s.Base, s.RelativePath))
|
||||
logrus.Infof("restore unfinished: base= '%s' relative_path= '%v'", s.Base, s.RelativePaths)
|
||||
opts = append(opts, acp.AccurateSource(s.Base, s.RelativePaths...))
|
||||
}
|
||||
} else {
|
||||
opts = append(opts, acp.Source(sources...))
|
||||
|
||||
13
opt.go
13
opt.go
@@ -89,12 +89,7 @@ type Option func(*option) *option
|
||||
func Source(paths ...string) Option {
|
||||
return func(o *option) *option {
|
||||
for _, p := range paths {
|
||||
p = strings.TrimSpace(p)
|
||||
if p == "" {
|
||||
continue
|
||||
}
|
||||
p = path.Clean(p)
|
||||
|
||||
if p[len(p)-1] == '/' {
|
||||
p = p[:len(p)-1]
|
||||
}
|
||||
@@ -108,12 +103,10 @@ func Source(paths ...string) Option {
|
||||
|
||||
func AccurateSource(base string, relativePaths ...string) Option {
|
||||
return func(o *option) *option {
|
||||
for _, p := range relativePaths {
|
||||
p = strings.TrimSpace(p)
|
||||
if p == "" {
|
||||
continue
|
||||
}
|
||||
base = path.Clean(base)
|
||||
|
||||
for _, p := range relativePaths {
|
||||
p = path.Clean(p)
|
||||
if p[len(p)-1] == '/' {
|
||||
p = p[:len(p)-1]
|
||||
}
|
||||
|
||||
16
report.go
16
report.go
@@ -18,7 +18,17 @@ func (c *Copyer) Report() *Report {
|
||||
|
||||
noSpaceSources := make([]*FilePath, 0, len(nss))
|
||||
for _, s := range nss {
|
||||
noSpaceSources = append(noSpaceSources, &FilePath{Base: s.base, RelativePath: s.relativePath})
|
||||
if len(noSpaceSources) == 0 {
|
||||
noSpaceSources = append(noSpaceSources, &FilePath{Base: s.base, RelativePaths: []string{s.relativePath}})
|
||||
continue
|
||||
}
|
||||
|
||||
if last := noSpaceSources[len(noSpaceSources)-1]; last.Base == s.base {
|
||||
last.RelativePaths = append(last.RelativePaths, s.relativePath)
|
||||
continue
|
||||
}
|
||||
|
||||
noSpaceSources = append(noSpaceSources, &FilePath{Base: s.base, RelativePaths: []string{s.relativePath}})
|
||||
}
|
||||
|
||||
return &Report{
|
||||
@@ -73,8 +83,8 @@ type File struct {
|
||||
}
|
||||
|
||||
type FilePath struct {
|
||||
Base string `json:"base,omitempty"`
|
||||
RelativePath string `json:"relative_path,omitempty"`
|
||||
Base string `json:"base,omitempty"`
|
||||
RelativePaths []string `json:"relative_paths,omitempty"`
|
||||
}
|
||||
|
||||
type Report struct {
|
||||
|
||||
Reference in New Issue
Block a user