X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=ifchange.go;h=fe1c2a853a64e79192f5a99a1b183adf74fc05aa;hb=3a29962a4bfcb0cf6cdfd112fb87f68751b0a0dc;hp=d4588107b6fc3e4ae1b9ac02cf4102799d60bdcb;hpb=1acd70630cf8aabeed4f63cac167ca7dc7f274b3;p=goredo.git diff --git a/ifchange.go b/ifchange.go index d458810..fe1c2a8 100644 --- a/ifchange.go +++ b/ifchange.go @@ -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) } }