]> Cypherpunks.ru repositories - goredo.git/blobdiff - depfix.go
Add information about error occurrence place
[goredo.git] / depfix.go
index 7ce7cb68b8d1cb9c3348b45dc1bf33d3036211f0..376c9229ea5b98c1b538f013a6191dacac93027e 100644 (file)
--- a/depfix.go
+++ b/depfix.go
@@ -31,7 +31,7 @@ func depFix(root string) error {
        tracef(CDebug, "depfix: entering %s", root)
        dir, err := os.Open(root)
        if err != nil {
-               return err
+               return ErrLine(err)
        }
        defer dir.Close()
        for {
@@ -40,7 +40,7 @@ func depFix(root string) error {
                        if err == io.EOF {
                                break
                        }
-                       return err
+                       return ErrLine(err)
                }
                for _, entry := range entries {
                        if entry.IsDir() {
@@ -58,7 +58,7 @@ func depFix(root string) error {
                if os.IsNotExist(err) {
                        return nil
                }
-               return err
+               return ErrLine(err)
        }
        defer dir.Close()
        redoDirChanged := false
@@ -68,7 +68,7 @@ func depFix(root string) error {
                        if err == io.EOF {
                                break
                        }
-                       return err
+                       return ErrLine(err)
                }
                for _, entry := range entries {
                        if !strings.HasSuffix(entry.Name(), DepSuffix) {
@@ -78,7 +78,7 @@ func depFix(root string) error {
                        fdDepPath := path.Join(redoDir, entry.Name())
                        fdDep, err := os.Open(fdDepPath)
                        if err != nil {
-                               return err
+                               return ErrLine(err)
                        }
                        defer fdDep.Close()
                        r := recfile.NewReader(fdDep)
@@ -90,7 +90,7 @@ func depFix(root string) error {
                                        if errors.Is(err, io.EOF) {
                                                break
                                        }
-                                       return err
+                                       return ErrLine(err)
                                }
                                fieldses = append(fieldses, fields)
                                m := make(map[string]string, len(fields))
@@ -107,7 +107,7 @@ func depFix(root string) error {
                                tracef(CDebug, "depfix: checking %s/%s -> %s", root, entry.Name(), dep)
                                theirInode, err := inodeFromRec(m)
                                if err != nil {
-                                       return err
+                                       return ErrLine(err)
                                }
                                theirHsh := m["Hash"]
                                fd, err := os.Open(path.Join(root, dep))
@@ -119,12 +119,12 @@ func depFix(root string) error {
                                                )
                                                continue
                                        }
-                                       return err
+                                       return ErrLine(err)
                                }
                                inode, err := inodeFromFileByFd(fd)
                                if err != nil {
                                        fd.Close()
-                                       return err
+                                       return ErrLine(err)
                                }
                                if inode.Size != theirInode.Size {
                                        tracef(
@@ -145,7 +145,7 @@ func depFix(root string) error {
                                hsh, err := fileHash(fd)
                                fd.Close()
                                if err != nil {
-                                       return err
+                                       return ErrLine(err)
                                }
                                if hsh != theirHsh {
                                        tracef(
@@ -174,7 +174,7 @@ func depFix(root string) error {
                        redoDirChanged = true
                        fdDep, err = tempfile(redoDir, entry.Name())
                        if err != nil {
-                               return err
+                               return ErrLine(err)
                        }
                        defer fdDep.Close()
                        tracef(
@@ -183,32 +183,32 @@ func depFix(root string) error {
                        )
                        w := recfile.NewWriter(fdDep)
                        if _, err := w.WriteFields(fieldses[0]...); err != nil {
-                               return err
+                               return ErrLine(err)
                        }
                        fieldses = fieldses[1:]
                        for _, fields := range fieldses {
                                if _, err := w.RecordStart(); err != nil {
-                                       return err
+                                       return ErrLine(err)
                                }
                                if _, err := w.WriteFields(fields...); err != nil {
-                                       return err
+                                       return ErrLine(err)
                                }
                        }
                        if !NoSync {
                                if err = fdDep.Sync(); err != nil {
-                                       return err
+                                       return ErrLine(err)
                                }
                        }
                        fdDep.Close()
                        if err = os.Rename(fdDep.Name(), fdDepPath); err != nil {
-                               return err
+                               return ErrLine(err)
                        }
                        tracef(CRedo, "%s", fdDepPath)
                }
        }
        if redoDirChanged && !NoSync {
                if err = syncDir(redoDir); err != nil {
-                       return nil
+                       return err
                }
        }
        return nil