main.go | 10 +++++++--- diff --git a/main.go b/main.go index 04a340cbcab03525ee710e7e08a55320f0d469a9164c3cd0266b2e2eb2ae3481..37f9a843d6ba9fa9f4decf6db807546331b3e0d83d2a5f00e2349ea687d21a96 100644 --- a/main.go +++ b/main.go @@ -28,6 +28,7 @@ "os" "path" "path/filepath" "strconv" + "strings" "go.cypherpunks.ru/recfile" "golang.org/x/sys/unix" @@ -250,9 +251,8 @@ if err != nil { 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 } @@ -271,7 +271,11 @@ break CmdSwitch } fmt.Println(cwdMustRel(cwd, m["Target"])) } - ok = doFile != "" + if doFile == "" { + ok = false + } else { + fmt.Println(path.Join(strings.Repeat("..", upLevels), doFile)) + } default: log.Fatalln("unknown command", cmdName) }