union: fix error handling broken by removal of github.com/pkg/errors
There were instances of errors.Wrap being called with a nil error which the conversion didn't deal with correctly.
This commit is contained in:
parent
2a31b5bdd6
commit
96e099d8e7
2 changed files with 29 additions and 9 deletions
|
@ -82,7 +82,9 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op
|
|||
multithread(len(entries), func(i int) {
|
||||
if o, ok := entries[i].(*upstream.Object); ok {
|
||||
err := o.Update(ctx, readers[i], src, options...)
|
||||
errs[i] = fmt.Errorf("%s: %w", o.UpstreamFs().Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", o.UpstreamFs().Name(), err)
|
||||
}
|
||||
} else {
|
||||
errs[i] = fs.ErrorNotAFile
|
||||
}
|
||||
|
@ -101,7 +103,9 @@ func (o *Object) Remove(ctx context.Context) error {
|
|||
multithread(len(entries), func(i int) {
|
||||
if o, ok := entries[i].(*upstream.Object); ok {
|
||||
err := o.Remove(ctx)
|
||||
errs[i] = fmt.Errorf("%s: %w", o.UpstreamFs().Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", o.UpstreamFs().Name(), err)
|
||||
}
|
||||
} else {
|
||||
errs[i] = fs.ErrorNotAFile
|
||||
}
|
||||
|
@ -120,7 +124,9 @@ func (o *Object) SetModTime(ctx context.Context, t time.Time) error {
|
|||
multithread(len(entries), func(i int) {
|
||||
if o, ok := entries[i].(*upstream.Object); ok {
|
||||
err := o.SetModTime(ctx, t)
|
||||
errs[i] = fmt.Errorf("%s: %w", o.UpstreamFs().Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", o.UpstreamFs().Name(), err)
|
||||
}
|
||||
} else {
|
||||
errs[i] = fs.ErrorNotAFile
|
||||
}
|
||||
|
|
|
@ -132,7 +132,9 @@ func (f *Fs) Rmdir(ctx context.Context, dir string) error {
|
|||
errs := Errors(make([]error, len(upstreams)))
|
||||
multithread(len(upstreams), func(i int) {
|
||||
err := upstreams[i].Rmdir(ctx, dir)
|
||||
errs[i] = fmt.Errorf("%s: %w", upstreams[i].Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", upstreams[i].Name(), err)
|
||||
}
|
||||
})
|
||||
return errs.Err()
|
||||
}
|
||||
|
@ -162,7 +164,9 @@ func (f *Fs) Mkdir(ctx context.Context, dir string) error {
|
|||
errs := Errors(make([]error, len(upstreams)))
|
||||
multithread(len(upstreams), func(i int) {
|
||||
err := upstreams[i].Mkdir(ctx, dir)
|
||||
errs[i] = fmt.Errorf("%s: %w", upstreams[i].Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", upstreams[i].Name(), err)
|
||||
}
|
||||
})
|
||||
return errs.Err()
|
||||
}
|
||||
|
@ -189,7 +193,9 @@ func (f *Fs) Purge(ctx context.Context, dir string) error {
|
|||
if errors.Is(err, fs.ErrorDirNotFound) {
|
||||
err = nil
|
||||
}
|
||||
errs[i] = fmt.Errorf("%s: %w", upstreams[i].Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", upstreams[i].Name(), err)
|
||||
}
|
||||
})
|
||||
return errs.Err()
|
||||
}
|
||||
|
@ -285,10 +291,14 @@ func (f *Fs) Move(ctx context.Context, src fs.Object, remote string) (fs.Object,
|
|||
}
|
||||
// Do the Move or Copy
|
||||
dstObj, err := do(ctx, srcObj, remote)
|
||||
if err != nil || dstObj == nil {
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", su.Name(), err)
|
||||
return
|
||||
}
|
||||
if dstObj == nil {
|
||||
errs[i] = fmt.Errorf("%s: destination object not found", su.Name())
|
||||
return
|
||||
}
|
||||
objs[i] = du.WrapObject(dstObj)
|
||||
// Delete the source object if Copy
|
||||
if duFeatures.Move == nil {
|
||||
|
@ -349,7 +359,9 @@ func (f *Fs) DirMove(ctx context.Context, src fs.Fs, srcRemote, dstRemote string
|
|||
return
|
||||
}
|
||||
err := du.Features().DirMove(ctx, su.Fs, srcRemote, dstRemote)
|
||||
errs[i] = fmt.Errorf("%s: %w", du.Name()+":"+du.Root(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", du.Name()+":"+du.Root(), err)
|
||||
}
|
||||
})
|
||||
errs = errs.FilterNil()
|
||||
if len(errs) == 0 {
|
||||
|
@ -777,7 +789,9 @@ func (f *Fs) Shutdown(ctx context.Context) error {
|
|||
u := f.upstreams[i]
|
||||
if do := u.Features().Shutdown; do != nil {
|
||||
err := do(ctx)
|
||||
errs[i] = fmt.Errorf("%s: %w", u.Name(), err)
|
||||
if err != nil {
|
||||
errs[i] = fmt.Errorf("%s: %w", u.Name(), err)
|
||||
}
|
||||
}
|
||||
})
|
||||
return errs.Err()
|
||||
|
|
Loading…
Reference in a new issue