X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=main.go;h=bd82de25075e2514f81be9477212712ddc7f96e6;hb=ee075e267b579a11ad0b48bf43d792ea1114998d;hp=b5618e649916efac50dc6ca0d6668a330422f80a;hpb=db81599c97bdc51c5fd1edfabc4840438a26029a;p=goredo.git diff --git a/main.go b/main.go index b5618e6..bd82de2 100644 --- a/main.go +++ b/main.go @@ -31,7 +31,6 @@ import ( "strings" "go.cypherpunks.ru/recfile" - "golang.org/x/sys/unix" ) var ( @@ -60,7 +59,7 @@ func mustParseFd(v, name string) *os.File { func main() { version := flag.Bool("version", false, "print version") warranty := flag.Bool("warranty", false, "print warranty information") - symlinks := flag.Bool("symlinks", false, "create necessary symlinks in current direcotyr") + symlinks := flag.Bool("symlinks", false, "create necessary symlinks in current directory") flag.Usage = usage flag.Parse() @@ -96,7 +95,7 @@ func main() { log.SetFlags(0) var err error - Cwd, err = unix.Getwd() + Cwd, err = os.Getwd() if err != nil { panic(err) } @@ -170,6 +169,7 @@ func main() { fdDep = mustParseFd(v, EnvDepFd) } BuildUUID = os.Getenv(EnvBuildUUID) + tgts := flag.Args() if BuildUUID == "" { raw := new([16]byte) if _, err = io.ReadFull(rand.Reader, raw[:]); err != nil { @@ -180,13 +180,18 @@ func main() { "%x-%x-%x-%x-%x", raw[0:4], raw[4:6], raw[6:8], raw[8:10], raw[10:], ) + if len(tgts) == 0 { + tgts = []string{"all"} + } } statusInit() - tgts := flag.Args() - if len(tgts) == 0 { - tgts = []string{"all"} + for i, tgt := range tgts { + if path.IsAbs(tgt) { + tgts[i] = cwdMustRel(tgt) + } } + ok := true err = nil cmdName := path.Base(os.Args[0]) @@ -255,6 +260,7 @@ CmdSwitch: } os.Remove(fdTmp.Name()) cwd, tgt := cwdAndTgt(tgts[0]) + cwdRel := cwdMustRel(cwd) doFile, upLevels, err := findDo(fdTmp, cwd, tgt) if err != nil { break @@ -277,7 +283,7 @@ CmdSwitch: if doFile == "" { ok = false } else { - fmt.Println(path.Join(strings.Repeat("..", upLevels), doFile)) + fmt.Println(path.Join(cwdRel, strings.Repeat("..", upLevels), doFile)) } default: log.Fatalln("unknown command", cmdName)