mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/doc: fix -http on Windows
On Windows, GOMODCACHE almost never starts with a slash, and "go doc -http" constructs a GOPROXY URL by doing "file://" + GOMODCACHE, resulting in an invalid file URI. For example, if GOMODCACHE is "C:\foo", then the file URI should be "file:///C:/foo", but it becomes "file://C:/foo" instead, where "C:" is understood as a host name, not a drive letter. Fixes #74137. Change-Id: I23e776e0f649a0062e01d1a4a6ea8268ba467331 Reviewed-on: https://go-review.googlesource.com/c/go/+/684575 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Matloob <matloob@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Michael Matloob <matloob@google.com>
This commit is contained in:
parent
b51f1cdb87
commit
acb914f2c2
3 changed files with 38 additions and 22 deletions
|
|
@ -405,6 +405,8 @@
|
|||
//
|
||||
// go doc
|
||||
// Show documentation for current package.
|
||||
// go doc -http
|
||||
// Serve HTML documentation over HTTP for the current package.
|
||||
// go doc Foo
|
||||
// Show documentation for Foo in the current package.
|
||||
// (Foo starts with a capital letter so it cannot match
|
||||
|
|
@ -439,26 +441,28 @@
|
|||
//
|
||||
// Flags:
|
||||
//
|
||||
// -all
|
||||
// Show all the documentation for the package.
|
||||
// -c
|
||||
// Respect case when matching symbols.
|
||||
// -cmd
|
||||
// Treat a command (package main) like a regular package.
|
||||
// Otherwise package main's exported symbols are hidden
|
||||
// when showing the package's top-level documentation.
|
||||
// -short
|
||||
// One-line representation for each symbol.
|
||||
// -src
|
||||
// Show the full source code for the symbol. This will
|
||||
// display the full Go source of its declaration and
|
||||
// definition, such as a function definition (including
|
||||
// the body), type declaration or enclosing const
|
||||
// block. The output may therefore include unexported
|
||||
// details.
|
||||
// -u
|
||||
// Show documentation for unexported as well as exported
|
||||
// symbols, methods, and fields.
|
||||
// -all
|
||||
// Show all the documentation for the package.
|
||||
// -c
|
||||
// Respect case when matching symbols.
|
||||
// -cmd
|
||||
// Treat a command (package main) like a regular package.
|
||||
// Otherwise package main's exported symbols are hidden
|
||||
// when showing the package's top-level documentation.
|
||||
// -http
|
||||
// Serve HTML docs over HTTP.
|
||||
// -short
|
||||
// One-line representation for each symbol.
|
||||
// -src
|
||||
// Show the full source code for the symbol. This will
|
||||
// display the full Go source of its declaration and
|
||||
// definition, such as a function definition (including
|
||||
// the body), type declaration or enclosing const
|
||||
// block. The output may therefore include unexported
|
||||
// details.
|
||||
// -u
|
||||
// Show documentation for unexported as well as exported
|
||||
// symbols, methods, and fields.
|
||||
//
|
||||
// # Print Go environment information
|
||||
//
|
||||
|
|
|
|||
|
|
@ -75,6 +75,8 @@ different cases. If this occurs, documentation for all matches is printed.
|
|||
Examples:
|
||||
go doc
|
||||
Show documentation for current package.
|
||||
go doc -http
|
||||
Serve HTML documentation over HTTP for the current package.
|
||||
go doc Foo
|
||||
Show documentation for Foo in the current package.
|
||||
(Foo starts with a capital letter so it cannot match
|
||||
|
|
@ -116,6 +118,8 @@ Flags:
|
|||
Treat a command (package main) like a regular package.
|
||||
Otherwise package main's exported symbols are hidden
|
||||
when showing the package's top-level documentation.
|
||||
-http
|
||||
Serve HTML docs over HTTP.
|
||||
-short
|
||||
One-line representation for each symbol.
|
||||
-src
|
||||
|
|
|
|||
|
|
@ -227,8 +227,16 @@ func doPkgsite(urlPath string) error {
|
|||
fields := strings.Fields(vars)
|
||||
if err == nil && len(fields) == 2 {
|
||||
goproxy, gomodcache := fields[0], fields[1]
|
||||
goproxy = "file://" + filepath.Join(gomodcache, "cache", "download") + "," + goproxy
|
||||
env = append(env, "GOPROXY="+goproxy)
|
||||
gomodcache = filepath.Join(gomodcache, "cache", "download")
|
||||
// Convert absolute path to file URL. pkgsite will not accept
|
||||
// Windows absolute paths because they look like a host:path remote.
|
||||
// TODO(golang.org/issue/32456): use url.FromFilePath when implemented.
|
||||
if strings.HasPrefix(gomodcache, "/") {
|
||||
gomodcache = "file://" + gomodcache
|
||||
} else {
|
||||
gomodcache = "file:///" + filepath.ToSlash(gomodcache)
|
||||
}
|
||||
env = append(env, "GOPROXY="+gomodcache+","+goproxy)
|
||||
}
|
||||
|
||||
const version = "v0.0.0-20250608123103-82c52f1754cd"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue