Drop dependency github.com/juju/errors

This commit is contained in:
Alexander Neumann
2016-08-21 17:24:13 +02:00
parent 24385ff56e
commit 17a38faa43
22 changed files with 28 additions and 2381 deletions
-2
View File
@@ -14,8 +14,6 @@ import (
"restic/repository"
"restic/worker"
"github.com/juju/errors"
)
type CmdDump struct {
+2 -3
View File
@@ -2,6 +2,7 @@ package restic
import (
"encoding/json"
"errors"
"fmt"
"io"
"os"
@@ -18,8 +19,6 @@ import (
"restic/repository"
"github.com/restic/chunker"
"github.com/juju/errors"
)
const (
@@ -230,7 +229,7 @@ func (arch *Archiver) SaveFile(p *Progress, node *Node) error {
}
if err != nil {
return errors.Annotate(err, "SaveFile() chunker.Next()")
return err
}
resCh := make(chan saveResult, 1)
+4 -5
View File
@@ -4,6 +4,7 @@ import (
"bufio"
"crypto/rand"
"encoding/hex"
"errors"
"fmt"
"io"
"os"
@@ -15,7 +16,6 @@ import (
"restic/backend"
"restic/debug"
"github.com/juju/errors"
"github.com/pkg/sftp"
)
@@ -206,9 +206,8 @@ func (r *SFTP) tempFile() (string, *sftp.File, error) {
buf := make([]byte, tempfileRandomSuffixLength)
_, err := io.ReadFull(rand.Reader, buf)
if err != nil {
return "", nil, errors.Annotatef(err,
"unable to read %d random bytes for tempfile name",
tempfileRandomSuffixLength)
return "", nil, fmt.Errorf("unable to read %d random bytes for tempfile name: %v",
tempfileRandomSuffixLength, err)
}
// construct tempfile name
@@ -217,7 +216,7 @@ func (r *SFTP) tempFile() (string, *sftp.File, error) {
// create file in temp dir
f, err := r.c.Create(name)
if err != nil {
return "", nil, errors.Annotatef(err, "creating tempfile %q failed", name)
return "", nil, fmt.Errorf("creating tempfile %q failed: %v", name, err)
}
return name, f, nil
+16 -18
View File
@@ -17,8 +17,6 @@ import (
"restic/fs"
"restic/pack"
"restic/repository"
"github.com/juju/errors"
)
// Node is a file, directory or other item in a backup.
@@ -114,27 +112,27 @@ func (node *Node) CreateAt(path string, repo *repository.Repository) error {
switch node.Type {
case "dir":
if err := node.createDirAt(path); err != nil {
return errors.Annotate(err, "createDirAt")
return err
}
case "file":
if err := node.createFileAt(path, repo); err != nil {
return errors.Annotate(err, "createFileAt")
return err
}
case "symlink":
if err := node.createSymlinkAt(path); err != nil {
return errors.Annotate(err, "createSymlinkAt")
return err
}
case "dev":
if err := node.createDevAt(path); err != nil {
return errors.Annotate(err, "createDevAt")
return err
}
case "chardev":
if err := node.createCharDevAt(path); err != nil {
return errors.Annotate(err, "createCharDevAt")
return err
}
case "fifo":
if err := node.createFifoAt(path); err != nil {
return errors.Annotate(err, "createFifoAt")
return err
}
case "socket":
return nil
@@ -155,13 +153,13 @@ func (node Node) restoreMetadata(path string) error {
err = lchown(path, int(node.UID), int(node.GID))
if err != nil {
return errors.Annotate(err, "Lchown")
return err
}
if node.Type != "symlink" {
err = fs.Chmod(path, node.Mode)
if err != nil {
return errors.Annotate(err, "Chmod")
return err
}
}
@@ -191,7 +189,7 @@ func (node Node) RestoreTimestamps(path string) error {
}
if err := syscall.UtimesNano(path, utimes[:]); err != nil {
return errors.Annotate(err, "UtimesNano")
return err
}
return nil
@@ -200,7 +198,7 @@ func (node Node) RestoreTimestamps(path string) error {
func (node Node) createDirAt(path string) error {
err := fs.Mkdir(path, node.Mode)
if err != nil {
return errors.Annotate(err, "Mkdir")
return err
}
return nil
@@ -211,7 +209,7 @@ func (node Node) createFileAt(path string, repo *repository.Repository) error {
defer f.Close()
if err != nil {
return errors.Annotate(err, "OpenFile")
return err
}
var buf []byte
@@ -228,12 +226,12 @@ func (node Node) createFileAt(path string, repo *repository.Repository) error {
buf, err := repo.LoadBlob(id, pack.Data, buf)
if err != nil {
return errors.Annotate(err, "Load")
return err
}
_, err = f.Write(buf)
if err != nil {
return errors.Annotate(err, "Write")
return err
}
}
@@ -247,7 +245,7 @@ func (node Node) createSymlinkAt(path string) error {
}
err := fs.Symlink(node.LinkTarget, path)
if err != nil {
return errors.Annotate(err, "Symlink")
return err
}
return nil
@@ -422,7 +420,7 @@ func (node *Node) fillUser(stat statT) error {
username, err := lookupUsername(strconv.Itoa(int(stat.uid())))
if err != nil {
return errors.Annotate(err, "fillUser")
return err
}
node.User = username
@@ -470,7 +468,7 @@ func (node *Node) fillExtra(path string, fi os.FileInfo) error {
var err error
if err = node.fillUser(stat); err != nil {
return errors.Annotate(err, "fillExtra")
return err
}
switch node.Type {
+1 -3
View File
@@ -6,8 +6,6 @@ import (
"unsafe"
"restic/fs"
"github.com/juju/errors"
)
func (node Node) restoreSymlinkTimestamps(path string, utimes [2]syscall.Timespec) error {
@@ -20,7 +18,7 @@ func (node Node) restoreSymlinkTimestamps(path string, utimes [2]syscall.Timespe
err = utimesNanoAt(int(dir.Fd()), filepath.Base(path), utimes, AT_SYMLINK_NOFOLLOW)
if err != nil {
return errors.Annotate(err, "UtimesNanoAt")
return err
}
return nil
+5 -7
View File
@@ -9,8 +9,6 @@ import (
"restic/debug"
"restic/fs"
"restic/repository"
"github.com/juju/errors"
)
// Restorer is used to restore a snapshot to a directory.
@@ -35,7 +33,7 @@ func NewRestorer(repo *repository.Repository, id backend.ID) (*Restorer, error)
r.sn, err = LoadSnapshot(repo, id)
if err != nil {
return nil, errors.Annotate(err, "load snapshot for restorer")
return nil, err
}
return r, nil
@@ -44,7 +42,7 @@ func NewRestorer(repo *repository.Repository, id backend.ID) (*Restorer, error)
func (res *Restorer) restoreTo(dst string, dir string, treeID backend.ID) error {
tree, err := LoadTree(res.repo, treeID)
if err != nil {
return res.Error(dir, nil, errors.Annotate(err, "LoadTree"))
return res.Error(dir, nil, err)
}
for _, node := range tree.Nodes {
@@ -67,7 +65,7 @@ func (res *Restorer) restoreTo(dst string, dir string, treeID backend.ID) error
subp := filepath.Join(dir, node.Name)
err = res.restoreTo(dst, subp, *node.Subtree)
if err != nil {
err = res.Error(subp, node, errors.Annotate(err, "restore subtree"))
err = res.Error(subp, node, err)
if err != nil {
return err
}
@@ -96,7 +94,7 @@ func (res *Restorer) restoreNodeTo(node *Node, dir string, dst string) error {
}
// Did it fail because of ENOENT?
if err != nil && os.IsNotExist(errors.Cause(err)) {
if err != nil && os.IsNotExist(err) {
debug.Log("Restorer.restoreNodeTo", "create intermediate paths")
// Create parent directories and retry
@@ -108,7 +106,7 @@ func (res *Restorer) restoreNodeTo(node *Node, dir string, dst string) error {
if err != nil {
debug.Log("Restorer.restoreNodeTo", "error %v", err)
err = res.Error(dstPath, node, errors.Annotate(err, "create node"))
err = res.Error(dstPath, node, err)
if err != nil {
return err
}