]> Cypherpunks.ru repositories - goredo.git/blobdiff - ifchange.go
Raise version
[goredo.git] / ifchange.go
index d4588107b6fc3e4ae1b9ac02cf4102799d60bdcb..fe1c2a853a64e79192f5a99a1b183adf74fc05aa 100644 (file)
@@ -83,9 +83,11 @@ func buildDependants(tgts []string) map[string]struct{} {
        trace(CDebug, "collecting deps")
        seen := map[string]struct{}{}
        deps := map[string]map[string]struct{}{}
-       for _, tgt := range tgts {
-               for _, tgt := range collectDeps(Cwd, tgt, 0, deps) {
-                       seen[tgt] = struct{}{}
+       for _, tgtInitial := range tgts {
+               for _, tgt := range collectDeps(Cwd, tgtInitial, 0, deps) {
+                       if tgt != tgtInitial {
+                               seen[tgt] = struct{}{}
+                       }
                }
        }
        if len(seen) == 0 {
@@ -99,7 +101,7 @@ func buildDependants(tgts []string) map[string]struct{} {
        Level = 1
        trace(CDebug, "building %d alwayses: %v", len(seen), seen)
        errs := make(chan error, len(seen))
-       for tgt, _ := range seen {
+       for tgt := range seen {
                if err := runScript(tgt, errs, false); err != nil {
                        trace(CErr, "always run error: %s, skipping dependants", err)
                        return nil
@@ -117,7 +119,7 @@ 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 {
@@ -128,7 +130,7 @@ 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)
                }
        }