]> Cypherpunks.ru repositories - goredo.git/blobdiff - ifchange.go
Linting
[goredo.git] / ifchange.go
index 0f430fdebd76741065215382cb76ee406690e3fe..43cfdb3e387e12474aec2034b719a8046ab6e6be 100644 (file)
@@ -45,13 +45,13 @@ func collectDeps(
        tgtRel := cwdMustRel(cwd, tgt)
        if depInfo.always {
                if depInfo.build == BuildUUID {
-                       trace(
+                       tracef(
                                CDebug, "ood: %s%s always, but already build",
                                strings.Repeat(". ", level), tgtOrig,
                        )
                        returnReady = true
                } else {
-                       trace(CDebug, "ood: %s%s always", strings.Repeat(". ", level), tgtOrig)
+                       tracef(CDebug, "ood: %s%s always", strings.Repeat(". ", level), tgtOrig)
                        alwayses = append(alwayses, tgtRel)
                        returnReady = true
                }
@@ -87,7 +87,7 @@ func collectDeps(
 
 func buildDependants(tgts []string) map[string]struct{} {
        defer Jobs.Wait()
-       trace(CDebug, "collecting deps")
+       tracef(CDebug, "collecting deps")
        seen := map[string]struct{}{}
        deps := map[string]map[string]struct{}{}
        for _, tgtInitial := range tgts {
@@ -106,22 +106,22 @@ func buildDependants(tgts []string) map[string]struct{} {
                Level = levelOrig
        }()
        Level = 1
-       trace(CDebug, "building %d alwayses: %v", len(seen), seen)
+       tracef(CDebug, "building %d alwayses: %v", len(seen), seen)
        errs := make(chan error, len(seen))
        for tgt := range seen {
                if err := runScript(tgt, errs, false); err != nil {
-                       trace(CErr, "always run error: %s, skipping dependants", err)
+                       tracef(CErr, "always run error: %s, skipping dependants", err)
                        return nil
                }
        }
        ok := true
        for i := 0; i < len(seen); i++ {
-               ok = ok && isOkRun(<-errs)
+               ok = isOkRun(<-errs) && ok
        }
        Jobs.Wait()
        close(errs)
        if !ok {
-               trace(CDebug, "alwayses failed, skipping dependants")
+               tracef(CDebug, "alwayses failed, skipping dependants")
                return nil
        }
 
@@ -134,28 +134,28 @@ func buildDependants(tgts []string) map[string]struct{} {
        }
 
 RebuildDeps:
-       trace(CDebug, "checking %d dependant targets: %v", len(queueSrc), queueSrc)
+       tracef(CDebug, "checking %d dependant targets: %v", len(queueSrc), queueSrc)
        queue := []string{}
        for _, tgt := range queueSrc {
                for dep := range deps[tgt] {
                        queue = append(queue, dep)
                }
        }
-       trace(CDebug, "building %d dependant targets: %v", len(queue), queue)
+       tracef(CDebug, "building %d dependant targets: %v", len(queue), queue)
        errs = make(chan error, len(queue))
        jobs := 0
        queueSrc = []string{}
        for _, tgt := range queue {
                ood, err := isOODWithTrace(Cwd, tgt, 0, seen)
                if err != nil {
-                       trace(CErr, "dependant error: %s, skipping dependants", err)
+                       tracef(CErr, "dependant error: %s, skipping dependants", err)
                        return nil
                }
                if !ood {
                        continue
                }
                if err := runScript(tgt, errs, false); err != nil {
-                       trace(CErr, "dependant error: %s, skipping dependants", err)
+                       tracef(CErr, "dependant error: %s, skipping dependants", err)
                        return nil
                }
                queueSrc = append(queueSrc, tgt)
@@ -163,10 +163,10 @@ RebuildDeps:
                jobs++
        }
        for i := 0; i < jobs; i++ {
-               ok = ok && isOkRun(<-errs)
+               ok = isOkRun(<-errs) && ok
        }
        if !ok {
-               trace(CDebug, "dependants failed, skipping them")
+               tracef(CDebug, "dependants failed, skipping them")
                return nil
        }
        Jobs.Wait()
@@ -180,18 +180,20 @@ RebuildDeps:
 
 func ifchange(tgts []string, forced, traced bool) (bool, error) {
        jsInit()
-       defer jsAcquire("ifchange exiting")
+       if !IsTopRedo {
+               defer jsAcquire("ifchange exiting")
+       }
        defer Jobs.Wait()
        seen := buildDependants(tgts)
        oodTgtsClear()
-       trace(CDebug, "building %d targets: %v", len(tgts), tgts)
+       tracef(CDebug, "building %d targets: %v", len(tgts), tgts)
        jobs := 0
        errs := make(chan error, len(tgts))
        var ood bool
        var err error
        for _, tgt := range tgts {
                if _, ok := seen[tgt]; ok {
-                       trace(CDebug, "%s was already build as a dependant", tgt)
+                       tracef(CDebug, "%s was already build as a dependant", tgt)
                        continue
                }
                ood = true
@@ -205,7 +207,7 @@ func ifchange(tgts []string, forced, traced bool) (bool, error) {
                        continue
                }
                if isSrc(Cwd, tgt) {
-                       trace(CDebug, "%s is source, not redoing", tgt)
+                       tracef(CDebug, "%s is source, not redoing", tgt)
                        continue
                }
                if err = runScript(tgt, errs, traced); err != nil {
@@ -215,7 +217,7 @@ func ifchange(tgts []string, forced, traced bool) (bool, error) {
        }
        ok := true
        for ; jobs > 0; jobs-- {
-               ok = ok && isOkRun(<-errs)
+               ok = isOkRun(<-errs) && ok
        }
        return ok, nil
 }