]> Cypherpunks.ru repositories - goredo.git/blobdiff - depfix.go
Remove duplicate check
[goredo.git] / depfix.go
index 376c9229ea5b98c1b538f013a6191dacac93027e..bf048798aad0a15c613deff75662ba3d54b9e193 100644 (file)
--- a/depfix.go
+++ b/depfix.go
@@ -18,8 +18,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 package main
 
 import (
+       "bytes"
+       "encoding/hex"
        "errors"
        "io"
+       "io/fs"
        "os"
        "path"
        "strings"
@@ -55,7 +58,7 @@ func depFix(root string) error {
        redoDir := path.Join(root, RedoDir)
        dir, err = os.Open(redoDir)
        if err != nil {
-               if os.IsNotExist(err) {
+               if errors.Is(err, fs.ErrNotExist) {
                        return nil
                }
                return ErrLine(err)
@@ -109,10 +112,10 @@ func depFix(root string) error {
                                if err != nil {
                                        return ErrLine(err)
                                }
-                               theirHsh := m["Hash"]
+                               theirHsh := mustHexDecode(m["Hash"])
                                fd, err := os.Open(path.Join(root, dep))
                                if err != nil {
-                                       if os.IsNotExist(err) {
+                                       if errors.Is(err, fs.ErrNotExist) {
                                                tracef(
                                                        CDebug, "depfix: %s/%s -> %s: not exists",
                                                        root, entry.Name(), dep,
@@ -121,7 +124,7 @@ func depFix(root string) error {
                                        }
                                        return ErrLine(err)
                                }
-                               inode, err := inodeFromFileByFd(fd)
+                               inode, _, err := inodeFromFileByFd(fd)
                                if err != nil {
                                        fd.Close()
                                        return ErrLine(err)
@@ -147,7 +150,7 @@ func depFix(root string) error {
                                if err != nil {
                                        return ErrLine(err)
                                }
-                               if hsh != theirHsh {
+                               if !bytes.Equal(hsh, theirHsh) {
                                        tracef(
                                                CDebug, "depfix: %s/%s -> %s: hash differs",
                                                root, entry.Name(), dep,
@@ -157,7 +160,7 @@ func depFix(root string) error {
                                fields = []recfile.Field{
                                        {Name: "Type", Value: DepTypeIfchange},
                                        {Name: "Target", Value: dep},
-                                       {Name: "Hash", Value: hsh},
+                                       {Name: "Hash", Value: hex.EncodeToString(hsh)},
                                }
                                fields = append(fields, inode.RecfileFields()...)
                                fieldses[len(fieldses)-1] = fields