]> Cypherpunks.ru repositories - goredo.git/blobdiff - run.go
Prepare to rename DepInfo->Dep
[goredo.git] / run.go
diff --git a/run.go b/run.go
index 7a6ac37ed124474f787ccf7b1ef267e909529d46..38bfc13562b72d162791ae683f8db45e50a49703 100644 (file)
--- a/run.go
+++ b/run.go
@@ -111,7 +111,7 @@ type RunError struct {
 func (e *RunError) Name() string {
        var name string
        if e.DoFile == "" {
-               name = e.Tgt.String()
+               name = e.Tgt.rel
        } else {
                name = fmt.Sprintf("%s (%s)", e.Tgt, e.DoFile)
        }
@@ -132,14 +132,14 @@ func mkdirs(pth string) error {
        return os.MkdirAll(pth, os.FileMode(0777))
 }
 
-func isModified(depInfo *DepInfo, tgt *Tgt) (
-       modified bool, ourInode *Inode, hshPrev string, err error,
+func isModified(dep *Dep, tgt *Tgt) (
+       modified bool, ourInode *Inode, hshPrev Hash, err error,
 ) {
-       if depInfo == nil {
+       if dep == nil {
                return
        }
-       for _, dep := range depInfo.ifchanges {
-               if dep.tgt.a != tgt.a {
+       for _, ifchange := range dep.ifchanges {
+               if ifchange.tgt.a != tgt.a {
                        continue
                }
                ourInode, err = inodeFromFileByPath(tgt.a)
@@ -260,7 +260,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
 
        // It scans the whole .rec file while searching for the single target,
        // but that one is always located at the very end
-       depInfo, err := depRead(tgt)
+       dep, err := depRead(tgt)
        if err != nil {
                if errors.Is(err, fs.ErrNotExist) {
                        err = nil
@@ -271,14 +271,14 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
        }
 
        // Check if it was already built in parallel
-       if !forced && depInfo != nil && depInfo.build == BuildUUID {
+       if !forced && dep != nil && dep.build == BuildUUID {
                lockRelease()
                errs <- nil
                return nil
        }
 
        // Check if target is not modified externally
-       modified, inodePrev, hshPrev, err := isModified(depInfo, tgt)
+       modified, inodePrev, hshPrev, err := isModified(dep, tgt)
        if err != nil {
                lockRelease()
                return TgtError{tgt, ErrLine(err)}
@@ -294,7 +294,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                }()
                return nil
        }
-       depInfo = nil
+       dep = nil
 
        // Start preparing .rec
        fdDep, err := tempfile(redoDir, tgt.t+DepSuffix)
@@ -350,7 +350,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                doFile = NewTgt(path.Join(ups...))
                if strings.HasPrefix(doFile.t, "default.") {
                        basename = basename[:len(basename)-(len(doFile.t)-len("default.")-len(".do"))-1]
-                       runErr.DoFile = doFile.String()
+                       runErr.DoFile = doFile.rel
                }
        }
 
@@ -365,7 +365,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
        // Prepare command line
        var cmdName string
        var args []string
-       if err = unix.Access(doFile.String(), unix.X_OK); err == nil {
+       if err = unix.Access(doFile.rel, unix.X_OK); err == nil {
                cmdName = doFile.t
                args = make([]string, 0, 3)
        } else {
@@ -558,10 +558,10 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                                                        err = ErrLine(err)
                                                        goto Err
                                                }
-                                               for _, dep := range ifchanges {
+                                               for _, ifchange := range ifchanges {
                                                        fields = append(fields, recfile.Field{
                                                                Name:  "Ifchange",
-                                                               Value: dep,
+                                                               Value: ifchange,
                                                        })
                                                }
                                        }
@@ -665,11 +665,6 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                                errs <- runErr
                                return
                        }
-                       if err != nil {
-                               runErr.Err = err
-                               errs <- runErr
-                               return
-                       }
                        if !inode.Equals(inodePrev) {
                                runErr.Err = Err1WasTouched
                                errs <- runErr
@@ -721,7 +716,7 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                                goto Finish
                        }
                } else {
-                       var hsh string
+                       var hsh Hash
                        if hshPrev != "" {
                                _, err = fd.Seek(0, io.SeekStart)
                                if err != nil {
@@ -803,11 +798,12 @@ func runScript(tgt *Tgt, errs chan error, forced, traced bool) error {
                // Post-commit .rec sanitizing
                if depInfo, err := depRead(tgt); err == nil {
                        ifchangeSeen := make(map[string]struct{}, len(depInfo.ifchanges))
-                       for _, dep := range depInfo.ifchanges {
-                               ifchangeSeen[dep.tgt.a] = struct{}{}
+                       ifchangeSeen := make(map[string]struct{}, len(dep.ifchanges))
+                       for _, ifchange := range dep.ifchanges {
+                               ifchangeSeen[ifchange.tgt.a] = struct{}{}
                        }
-                       for _, dep := range depInfo.ifcreates {
-                               if _, exists := ifchangeSeen[dep.a]; exists {
+                       for _, ifcreate := range dep.ifcreates {
+                               if _, exists := ifchangeSeen[ifcreate.a]; exists {
                                        tracef(CWarn, "simultaneous ifcreate and ifchange records: %s", tgt)
                                }
                        }