From e14100898b08c312919f58f712f19f623f602748 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 22 Nov 2020 21:35:49 +0300 Subject: [PATCH] Trace only non-dependant targets --- ifchange.go | 8 ++++---- main.go | 9 +++++---- run.go | 5 ++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ifchange.go b/ifchange.go index 9e39e7f..a7fe947 100644 --- a/ifchange.go +++ b/ifchange.go @@ -95,7 +95,7 @@ func buildDependants(tgts []string) map[string]struct{} { 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 } @@ -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++ diff --git a/main.go b/main.go index f466faa..afeb353 100644 --- a/main.go +++ b/main.go @@ -143,10 +143,11 @@ func main() { if Debug || os.Getenv(EnvLogPid) == "1" { MyPid = os.Getpid() } + var traced bool if *flagTrace { - Trace = true + traced = true } else { - Trace = os.Getenv(EnvTrace) == "1" + traced = os.Getenv(EnvTrace) == "1" } // Those are internal envs @@ -190,13 +191,13 @@ CmdSwitch: switch cmdName { case "redo": for _, tgt := range tgts { - ok, err = ifchange([]string{tgt}, true) + ok, err = ifchange([]string{tgt}, true, traced) if err != nil || !ok { break } } case "redo-ifchange": - ok, err = ifchange(tgts, false) + ok, err = ifchange(tgts, false, traced) writeDeps(fdDep, tgts) case "redo-ifcreate": if fdDep == nil { diff --git a/run.go b/run.go index 0f7277b..bb455e8 100644 --- a/run.go +++ b/run.go @@ -57,7 +57,6 @@ const ( ) var ( - Trace bool = false NoSync bool = false StderrKeep bool = false StderrSilent bool = false @@ -165,7 +164,7 @@ func syncDir(dir string) error { return err } -func runScript(tgtOrig string, errs chan error) error { +func runScript(tgtOrig string, errs chan error, traced bool) error { cwd, tgt := cwdAndTgt(tgtOrig) redoDir := path.Join(cwd, RedoDir) if err := mkdirs(redoDir); err != nil { @@ -325,7 +324,7 @@ func runScript(tgtOrig string, errs chan error) error { } else { // Shell cmdName = "/bin/sh" - if Trace { + if traced { args = append(args, "-ex") } else { args = append(args, "-e") -- 2.44.0