X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=main.go;h=f6668c2425aeb614dc7103a1f71a709f81700689;hb=ed2bf87ba30cd8d5934b6f29a922e48039ab00ab;hp=ee5bf041f5f608dbc70a79e0d1c8c56b31223064;hpb=6f6dd2ce966c3c6c2f7d49f13498c192cffc1ea4;p=goredo.git diff --git a/main.go b/main.go index ee5bf04..f6668c2 100644 --- a/main.go +++ b/main.go @@ -30,6 +30,7 @@ import ( "path" "path/filepath" "runtime" + "sort" "strconv" "go.cypherpunks.ru/recfile" @@ -84,7 +85,10 @@ func main() { "redo-ifchange", "redo-ifcreate", "redo-log", + "redo-ood", + "redo-sources", "redo-stamp", + "redo-targets", "redo-whichdo", } { fmt.Println(os.Args[0], "<-", cmdName) @@ -156,10 +160,11 @@ func main() { if *flagTraceAll { mustSetenv(EnvTrace, "1") } - if *flagTrace { + if os.Getenv(EnvTrace) == "1" { + TracedAll = true traced = true } else { - traced = os.Getenv(EnvTrace) == "1" + traced = *flagTrace } // Those are internal envs @@ -184,7 +189,7 @@ func main() { if err = unix.Flock(int(fdLock.Fd()), unix.LOCK_EX); err != nil { panic(err) } - if _, err = fd.Seek(0, os.SEEK_SET); err != nil { + if _, err = fd.Seek(0, io.SeekStart); err != nil { panic(err) } tgtsRaw, err := ioutil.ReadAll(bufio.NewReader(fd)) @@ -323,7 +328,7 @@ CmdSwitch: if err != nil { break } - _, err = fdTmp.Seek(0, os.SEEK_SET) + _, err = fdTmp.Seek(0, io.SeekStart) if err != nil { break } @@ -353,6 +358,31 @@ CmdSwitch: } fmt.Println(rel) } + case "redo-targets": + tgts, err = targetsWalker(Cwd) + sort.Strings(tgts) + for _, tgt := range tgts { + fmt.Println(tgt) + } + case "redo-ood": + tgts, err = targetsWalker(Cwd) + sort.Strings(tgts) + var ood bool + for _, tgt := range tgts { + ood, err = isOOD(Cwd, tgt, 0, nil) + if err != nil { + break + } + if ood { + fmt.Println(tgt) + } + } + case "redo-sources": + tgts, err = sourcesWalker() + sort.Strings(tgts) + for _, tgt := range tgts { + fmt.Println(tgt) + } default: log.Fatalln("unknown command", cmdName) }