X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=main.go;fp=main.go;h=c05d3c777e2247d8a2b4ad69ef73aed78b571d92;hb=e935c1db3ae2ff6d920ff37802774ba2e85629f0;hp=025ecbed5be4972146276c386d0fb14810de6975;hpb=10baafbc3ef7dd24ecdc18a008e59e5068c8eb39;p=goredo.git diff --git a/main.go b/main.go index 025ecbe..c05d3c7 100644 --- a/main.go +++ b/main.go @@ -499,11 +499,23 @@ CmdSwitch: } } sort.Strings(tgts) - var srcs []string - srcs, err = sourcesWalker(tgts) - err = ErrLine(err) - sort.Strings(srcs) - for _, src := range srcs { + seen := make(map[string]struct{}) + seenDeps := make(map[string]struct{}) + srcs := make(map[string]struct{}) + err = ErrLine(sourcesWalker(tgts, seen, seenDeps, srcs)) + seen = nil + seenDeps = nil + if err != nil { + break + } + seenDeps = nil + res := make([]string, 0, len(srcs)) + for p := range srcs { + res = append(res, p) + } + srcs = nil + sort.Strings(res) + for _, src := range res { fmt.Println(src) } case CmdNameRedoDepFix: