X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=ifchange.go;h=d4588107b6fc3e4ae1b9ac02cf4102799d60bdcb;hb=534c8fdbe4a61d920fd6aa7ba2a8003adb672c7e;hp=9e39e7f7769b2e371526e3d15d9a008b079d9526;hpb=f8a8a335216a6ec9aa6119d473d2f6aeb43958ca;p=goredo.git diff --git a/ifchange.go b/ifchange.go index 9e39e7f..d458810 100644 --- a/ifchange.go +++ b/ifchange.go @@ -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 { + if err := runScript(tgt, errs, false); err != nil { trace(CErr, "always run error: %s, skipping dependants", err) return nil } @@ -118,11 +123,6 @@ func buildDependants(tgts []string) map[string]struct{} { 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) @@ -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++