diff options
author | Robert Griesemer <gri@golang.org> | 2010-02-19 16:23:19 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2010-02-19 16:23:19 -0800 |
commit | aaec61555a3963903be8efa46d54b2db029adfec (patch) | |
tree | 9be38ecf34986b4df62f9c289c2485594ac749d2 | |
parent | 8e714aab2bfdc71635786732e1bac45f27f2201c (diff) | |
download | go-aaec61555a3963903be8efa46d54b2db029adfec.tar.gz go-aaec61555a3963903be8efa46d54b2db029adfec.zip |
godoc: fix path resolution for command-line one more time (sigh...)
R=rsc
CC=golang-dev
https://golang.org/cl/217058
-rw-r--r-- | src/cmd/godoc/main.go | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/cmd/godoc/main.go b/src/cmd/godoc/main.go index 5ce7f9d51b..ded1d3607a 100644 --- a/src/cmd/godoc/main.go +++ b/src/cmd/godoc/main.go @@ -33,6 +33,7 @@ import ( "io" "log" "os" + pathutil "path" "time" ) @@ -224,11 +225,29 @@ func main() { packageText = packageHTML } - info := pkgHandler.getPageInfo(flag.Arg(0), flag.Arg(0), true) + // determine paths + path := flag.Arg(0) + if len(path) > 0 && path[0] == '.' { + // assume cwd; don't assume -goroot + cwd, _ := os.Getwd() // ignore errors + path = pathutil.Join(cwd, path) + } + relpath := path + abspath := path + if len(path) > 0 && path[0] != '/' { + abspath = absolutePath(path, pkgHandler.fsRoot) + } else { + relpath = relativePath(path) + } + + info := pkgHandler.getPageInfo(abspath, relpath, true) if info.PDoc == nil && info.Dirs == nil { // try again, this time assume it's a command - info = cmdHandler.getPageInfo(flag.Arg(0), flag.Arg(0), false) + if len(path) > 0 && path[0] != '/' { + abspath = absolutePath(path, cmdHandler.fsRoot) + } + info = cmdHandler.getPageInfo(abspath, relpath, false) } if info.PDoc != nil && flag.NArg() > 1 { |