X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=main.go;h=b5618e649916efac50dc6ca0d6668a330422f80a;hb=db81599c97bdc51c5fd1edfabc4840438a26029a;hp=afeb353f43d002c727f6596d1786052c6ee7f47c;hpb=e14100898b08c312919f58f712f19f623f602748;p=goredo.git diff --git a/main.go b/main.go index afeb353..b5618e6 100644 --- a/main.go +++ b/main.go @@ -18,7 +18,6 @@ along with this program. If not, see . package main import ( - "bufio" "crypto/rand" "flag" "fmt" @@ -29,6 +28,7 @@ import ( "path" "path/filepath" "strconv" + "strings" "go.cypherpunks.ru/recfile" "golang.org/x/sys/unix" @@ -91,7 +91,6 @@ func main() { log.Println(err) } } - fmt.Println("no creating optional:", os.Args[0], "<- tai64nlocal") os.Exit(rc) } log.SetFlags(0) @@ -106,7 +105,9 @@ func main() { NoSync = os.Getenv(EnvNoSync) == "1" TopDir = os.Getenv(EnvTopDir) - if TopDir != "" { + if TopDir == "" { + TopDir = "/" + } else { TopDir, err = filepath.Abs(TopDir) if err != nil { panic(err) @@ -144,6 +145,9 @@ func main() { MyPid = os.Getpid() } var traced bool + if *flagTraceAll { + mustSetenv(EnvTrace, "1") + } if *flagTrace { traced = true } else { @@ -177,6 +181,7 @@ func main() { raw[0:4], raw[4:6], raw[6:8], raw[8:10], raw[10:], ) } + statusInit() tgts := flag.Args() if len(tgts) == 0 { @@ -249,9 +254,8 @@ CmdSwitch: break } os.Remove(fdTmp.Name()) - var doFile string cwd, tgt := cwdAndTgt(tgts[0]) - doFile, _, err = findDo(fdTmp, cwd, tgt) + doFile, upLevels, err := findDo(fdTmp, cwd, tgt) if err != nil { break } @@ -270,11 +274,11 @@ CmdSwitch: } fmt.Println(cwdMustRel(cwd, m["Target"])) } - ok = doFile != "" - case "tai64nlocal": - bw := bufio.NewWriter(os.Stdout) - err = tai64nLocal(bw, os.Stdin) - bw.Flush() + if doFile == "" { + ok = false + } else { + fmt.Println(path.Join(strings.Repeat("..", upLevels), doFile)) + } default: log.Fatalln("unknown command", cmdName) }