mirror of
https://github.com/golang/go
synced 2024-11-24 09:20:02 -07:00
godoc: search GOPATH for documentation
R=rsc, mattn.jp CC=golang-dev https://golang.org/cl/4627065
This commit is contained in:
parent
72a73198df
commit
3cd8f27d79
@ -9,6 +9,7 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"go/ast"
|
||||
"go/build"
|
||||
"go/doc"
|
||||
"go/printer"
|
||||
"go/token"
|
||||
@ -83,7 +84,15 @@ var (
|
||||
|
||||
|
||||
func initHandlers() {
|
||||
fsMap.Init(*pkgPath)
|
||||
paths := filepath.SplitList(*pkgPath)
|
||||
for _, t := range build.Path {
|
||||
if t.Goroot {
|
||||
continue
|
||||
}
|
||||
paths = append(paths, t.SrcDir())
|
||||
}
|
||||
fsMap.Init(paths)
|
||||
|
||||
fileServer = http.FileServer(http.Dir(*goroot))
|
||||
cmdHandler = httpHandler{"/cmd/", filepath.Join(*goroot, "src", "cmd"), false}
|
||||
pkgHandler = httpHandler{"/pkg/", filepath.Join(*goroot, "src", "pkg"), true}
|
||||
|
@ -31,6 +31,7 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"go/ast"
|
||||
"go/build"
|
||||
"http"
|
||||
_ "http/pprof" // to serve /debug/pprof/*
|
||||
"io"
|
||||
@ -332,7 +333,10 @@ func main() {
|
||||
}
|
||||
relpath := path
|
||||
abspath := path
|
||||
if !filepath.IsAbs(path) {
|
||||
if t, pkg, err := build.FindTree(path); err == nil {
|
||||
relpath = pkg
|
||||
abspath = filepath.Join(t.SrcDir(), pkg)
|
||||
} else if !filepath.IsAbs(path) {
|
||||
abspath = absolutePath(path, pkgHandler.fsRoot)
|
||||
} else {
|
||||
relpath = relativeURL(path)
|
||||
|
@ -59,10 +59,10 @@ type mapping struct {
|
||||
}
|
||||
|
||||
|
||||
// Init initializes the Mapping from a list of paths separated by
|
||||
// filepath.ListSeparator. Empty paths are ignored; relative paths
|
||||
// are assumed to be relative to the current working directory and
|
||||
// converted to absolute paths. For each path of the form:
|
||||
// Init initializes the Mapping from a list of paths.
|
||||
// Empty paths are ignored; relative paths are assumed to be relative to
|
||||
// the current working directory and converted to absolute paths.
|
||||
// For each path of the form:
|
||||
//
|
||||
// dirname/localname
|
||||
//
|
||||
@ -80,8 +80,8 @@ type mapping struct {
|
||||
// user -> /home/user
|
||||
// public -> /home/build/public
|
||||
//
|
||||
func (m *Mapping) Init(paths string) {
|
||||
pathlist := canonicalizePaths(filepath.SplitList(paths), nil)
|
||||
func (m *Mapping) Init(paths []string) {
|
||||
pathlist := canonicalizePaths(paths, nil)
|
||||
list := make([]mapping, len(pathlist))
|
||||
|
||||
// create mapping list
|
||||
|
Loading…
Reference in New Issue
Block a user