]> Cypherpunks.ru repositories - goredo.git/blobdiff - ifchange.go
Simplify range over map keys
[goredo.git] / ifchange.go
index 9e39e7f7769b2e371526e3d15d9a008b079d9526..f0e877ef22c78da9f88f583b57d23bd244fe261d 100644 (file)
@@ -92,10 +92,15 @@ func buildDependants(tgts []string) map[string]struct{} {
                return nil
        }
 
+       levelOrig := Level
+       defer func() {
+               Level = levelOrig
+       }()
+       Level = 1
        trace(CDebug, "building %d alwayses: %v", len(seen), seen)
        errs := make(chan error, len(seen))
-       for tgt, _ := range seen {
-               if err := runScript(tgt, errs); err != nil {
+       for tgt := range seen {
+               if err := runScript(tgt, errs, false); err != nil {
                        trace(CErr, "always run error: %s, skipping dependants", err)
                        return nil
                }
@@ -112,23 +117,18 @@ func buildDependants(tgts []string) map[string]struct{} {
        }
 
        queueSrc := make([]string, 0, len(seen))
-       for tgt, _ := range seen {
+       for tgt := range seen {
                queueSrc = append(queueSrc, tgt)
        }
        if len(queueSrc) == 0 {
                return seen
        }
-       levelOrig := Level
-       defer func() {
-               Level = levelOrig
-       }()
-       Level = 1
 
 RebuildDeps:
        trace(CDebug, "checking %d dependant targets: %v", len(queueSrc), queueSrc)
        queue := []string{}
        for _, tgt := range queueSrc {
-               for dep, _ := range deps[tgt] {
+               for dep := range deps[tgt] {
                        queue = append(queue, dep)
                }
        }
@@ -145,7 +145,7 @@ RebuildDeps:
                if !ood {
                        continue
                }
-               if err := runScript(tgt, errs); err != nil {
+               if err := runScript(tgt, errs, false); err != nil {
                        trace(CErr, "dependant error: %s, skipping dependants", err)
                        return nil
                }
@@ -169,7 +169,7 @@ RebuildDeps:
        goto RebuildDeps
 }
 
-func ifchange(tgts []string, forced bool) (bool, error) {
+func ifchange(tgts []string, forced, traced bool) (bool, error) {
        jsInit()
        defer jsAcquire("ifchange exiting")
        defer Jobs.Wait()
@@ -198,7 +198,7 @@ func ifchange(tgts []string, forced bool) (bool, error) {
                        trace(CDebug, "%s is source, not redoing", tgt)
                        continue
                }
-               if err = runScript(tgt, errs); err != nil {
+               if err = runScript(tgt, errs, traced); err != nil {
                        return false, err
                }
                jobs++