X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=main.go;h=f6668c2425aeb614dc7103a1f71a709f81700689;hb=5dfe4d08937cc9cb2f39558359ea4df2f1e830b0;hp=4de78be52fa786830cfbb92862c1c495cd59140a;hpb=314f58ec690c7321535d6718e8d3a0ecb4cac019;p=goredo.git diff --git a/main.go b/main.go index 4de78be..f6668c2 100644 --- a/main.go +++ b/main.go @@ -29,6 +29,8 @@ import ( "os" "path" "path/filepath" + "runtime" + "sort" "strconv" "go.cypherpunks.ru/recfile" @@ -63,14 +65,14 @@ func main() { warranty := flag.Bool("warranty", false, "print warranty information") symlinks := flag.Bool("symlinks", false, "create necessary symlinks in current directory") - flag.Usage = usage + flag.Usage = func() { usage(os.Args[0]) } flag.Parse() if *warranty { fmt.Println(Warranty) return } if *version { - fmt.Println(versionGet()) + fmt.Println("goredo", Version, "built with", runtime.Version()) return } if *symlinks { @@ -83,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) @@ -155,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 @@ -183,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)) @@ -322,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 } @@ -352,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) }