From 673dda77c083398b16895fd38905d7680d9f66bb Mon Sep 17 00:00:00 2001 From: greatroar <@> Date: Sat, 3 Oct 2020 14:01:58 +0200 Subject: [PATCH] Less repetitive error messages in internal/cache Many instances of errors.Wrap in this package would produce messages like "Open: open : no such file or directory"; those now omit the first "Open:" (or "Stat:", or "MkdirAll"). The function readVersion now appends its own name to the error message, rather than the function that failed, to make it easier to spot. Other function names (e.g., Load) are already added further up in the call chain. --- internal/cache/cache.go | 22 +++++++++++----------- internal/cache/file.go | 14 +++++--------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/internal/cache/cache.go b/internal/cache/cache.go index 749df7991..b396da486 100644 --- a/internal/cache/cache.go +++ b/internal/cache/cache.go @@ -33,12 +33,12 @@ func readVersion(dir string) (v uint, err error) { } if err != nil { - return 0, errors.Wrap(err, "ReadFile") + return 0, errors.Wrap(err, "readVersion") } ver, err := strconv.ParseUint(string(buf), 10, 32) if err != nil { - return 0, errors.Wrap(err, "ParseUint") + return 0, errors.Wrap(err, "readVersion") } return uint(ver), nil @@ -56,13 +56,13 @@ const cachedirTagSignature = "Signature: 8a477f597d28d172789f06886806bc55\n" func writeCachedirTag(dir string) error { if err := fs.MkdirAll(dir, dirMode); err != nil { - return err + return errors.WithStack(err) } tagfile := filepath.Join(dir, "CACHEDIR.TAG") _, err := fs.Lstat(tagfile) if err != nil && !os.IsNotExist(err) { - return errors.Wrap(err, "Lstat") + return errors.WithStack(err) } f, err := fs.OpenFile(tagfile, os.O_CREATE|os.O_EXCL|os.O_WRONLY, fileMode) @@ -71,16 +71,16 @@ func writeCachedirTag(dir string) error { return nil } - return errors.Wrap(err, "OpenFile") + return errors.WithStack(err) } debug.Log("Create CACHEDIR.TAG at %v", dir) if _, err := f.Write([]byte(cachedirTagSignature)); err != nil { _ = f.Close() - return errors.Wrap(err, "Write") + return errors.WithStack(err) } - return f.Close() + return errors.WithStack(f.Close()) } // New returns a new cache for the repo ID at basedir. If basedir is the empty @@ -98,7 +98,7 @@ func New(id string, basedir string) (c *Cache, err error) { err = fs.MkdirAll(basedir, 0700) if err != nil { - return nil, err + return nil, errors.WithStack(err) } // create base dir and tag it as a cache directory @@ -124,7 +124,7 @@ func New(id string, basedir string) (c *Cache, err error) { if os.IsNotExist(err) { err = fs.MkdirAll(cachedir, dirMode) if err != nil { - return nil, err + return nil, errors.WithStack(err) } created = true } @@ -138,13 +138,13 @@ func New(id string, basedir string) (c *Cache, err error) { if v < cacheVersion { err = ioutil.WriteFile(filepath.Join(cachedir, "version"), []byte(fmt.Sprintf("%d", cacheVersion)), fileMode) if err != nil { - return nil, errors.Wrap(err, "WriteFile") + return nil, errors.WithStack(err) } } for _, p := range cacheLayoutPaths { if err = fs.MkdirAll(filepath.Join(cachedir, p), dirMode); err != nil { - return nil, err + return nil, errors.WithStack(err) } } diff --git a/internal/cache/file.go b/internal/cache/file.go index 7fa8b3dcd..b34bb7554 100644 --- a/internal/cache/file.go +++ b/internal/cache/file.go @@ -48,13 +48,13 @@ func (c *Cache) load(h restic.Handle, length int, offset int64) (io.ReadCloser, f, err := fs.Open(c.filename(h)) if err != nil { - return nil, errors.Wrap(err, "Open") + return nil, errors.WithStack(err) } fi, err := f.Stat() if err != nil { _ = f.Close() - return nil, errors.Wrap(err, "Stat") + return nil, errors.WithStack(err) } if fi.Size() <= crypto.Extension { @@ -94,15 +94,11 @@ func (c *Cache) saveWriter(h restic.Handle) (io.WriteCloser, error) { p := c.filename(h) err := fs.MkdirAll(filepath.Dir(p), 0700) if err != nil { - return nil, errors.Wrap(err, "MkdirAll") + return nil, errors.WithStack(err) } f, err := fs.OpenFile(p, os.O_CREATE|os.O_EXCL|os.O_WRONLY, 0400) - if err != nil { - return nil, errors.Wrap(err, "Create") - } - - return f, err + return f, errors.WithStack(err) } // Save saves a file in the cache. @@ -133,7 +129,7 @@ func (c *Cache) Save(h restic.Handle, rd io.Reader) error { if err = f.Close(); err != nil { _ = c.remove(h) - return errors.Wrap(err, "Close") + return errors.WithStack(err) } return nil