]> Cypherpunks.ru repositories - goredo.git/commitdiff
Trace only non-dependant targets
authorSergey Matveev <stargrave@stargrave.org>
Sun, 22 Nov 2020 18:35:49 +0000 (21:35 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 22 Nov 2020 18:35:49 +0000 (21:35 +0300)
ifchange.go
main.go
run.go

index 9e39e7f7769b2e371526e3d15d9a008b079d9526..a7fe9472372548644cff5c06867bc79b5160ebd9 100644 (file)
@@ -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 f466faa376813377582889cd955c8d3324fa3aa4..afeb353f43d002c727f6596d1786052c6ee7f47c 100644 (file)
--- 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 0f7277bfd34313daf56c01e3b60ab4dee272f922..bb455e845df4b20abc91be0a10c584367b43a301 100644 (file)
--- 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")