+ sort.Strings(raws)
+ for _, tgt := range raws {
+ fmt.Println(tgt)
+ }
+ case CmdNameRedoAffects:
+ if tgtsWasEmpty {
+ log.Fatal("no targets specified")
+ }
+ var res []string
+ {
+ var tgtsKnown []string
+ tgtsKnown, err = targetsWalker([]string{Cwd})
+ if err != nil {
+ err = ErrLine(err)
+ break
+ }
+ deps := make(map[string]map[string]*Tgt)
+ for _, tgt := range tgtsKnown {
+ collectDeps(NewTgt(tgt), 0, deps, true)
+ }
+ seen := make(map[string]*Tgt)
+ for _, tgt := range tgts {
+ collectWholeDeps(deps[tgt.rel], deps, seen)
+ }
+ res = make([]string, 0, len(seen))
+ for _, dep := range seen {
+ res = append(res, dep.rel)
+ }
+ }
+ sort.Strings(res)
+ for _, dep := range res {
+ fmt.Println(dep)
+ }
+ case CmdNameRedoOOD:
+ raws := make([]string, 0, len(tgts))
+ for _, tgt := range tgts {
+ raws = append(raws, tgt.rel)
+ }
+ if tgtsWasEmpty {
+ raws, err = targetsWalker([]string{Cwd})
+ if err != nil {
+ break
+ }
+ }
+ sort.Strings(raws)
+ var ood bool
+ for _, tgt := range raws {
+ ood, err = isOOD(NewTgt(tgt), 0, nil)
+ if err != nil {
+ err = ErrLine(err)
+ break
+ }
+ if ood {
+ fmt.Println(tgt)
+ }
+ }
+ case CmdNameRedoSources:
+ srcs := make(map[string]*Tgt)
+ {
+ raws := make([]string, 0, len(tgts))
+ for _, tgt := range tgts {
+ raws = append(raws, tgt.rel)
+ }
+ if tgtsWasEmpty {
+ raws, err = targetsWalker([]string{Cwd})
+ if err != nil {
+ err = ErrLine(err)
+ break
+ }
+ }
+ sort.Strings(raws)
+ tgts = tgts[:0]
+ for _, raw := range raws {
+ tgts = append(tgts, NewTgt(raw))
+ }
+ seen := make(map[string]struct{})
+ seenDeps := make(map[string]struct{})
+ err = ErrLine(sourcesWalker(tgts, seen, seenDeps, srcs))