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
|
// go doc
|
||||||
// Show documentation for current package.
|
// Show documentation for current package.
|
||||||
|
// go doc -http
|
||||||
|
// Serve HTML documentation over HTTP for the current package.
|
||||||
// go doc Foo
|
// go doc Foo
|
||||||
// Show documentation for Foo in the current package.
|
// Show documentation for Foo in the current package.
|
||||||
// (Foo starts with a capital letter so it cannot match
|
// (Foo starts with a capital letter so it cannot match
|
||||||
|
|
@ -447,6 +449,8 @@
|
||||||
// Treat a command (package main) like a regular package.
|
// Treat a command (package main) like a regular package.
|
||||||
// Otherwise package main's exported symbols are hidden
|
// Otherwise package main's exported symbols are hidden
|
||||||
// when showing the package's top-level documentation.
|
// when showing the package's top-level documentation.
|
||||||
|
// -http
|
||||||
|
// Serve HTML docs over HTTP.
|
||||||
// -short
|
// -short
|
||||||
// One-line representation for each symbol.
|
// One-line representation for each symbol.
|
||||||
// -src
|
// -src
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,8 @@ different cases. If this occurs, documentation for all matches is printed.
|
||||||
Examples:
|
Examples:
|
||||||
go doc
|
go doc
|
||||||
Show documentation for current package.
|
Show documentation for current package.
|
||||||
|
go doc -http
|
||||||
|
Serve HTML documentation over HTTP for the current package.
|
||||||
go doc Foo
|
go doc Foo
|
||||||
Show documentation for Foo in the current package.
|
Show documentation for Foo in the current package.
|
||||||
(Foo starts with a capital letter so it cannot match
|
(Foo starts with a capital letter so it cannot match
|
||||||
|
|
@ -116,6 +118,8 @@ Flags:
|
||||||
Treat a command (package main) like a regular package.
|
Treat a command (package main) like a regular package.
|
||||||
Otherwise package main's exported symbols are hidden
|
Otherwise package main's exported symbols are hidden
|
||||||
when showing the package's top-level documentation.
|
when showing the package's top-level documentation.
|
||||||
|
-http
|
||||||
|
Serve HTML docs over HTTP.
|
||||||
-short
|
-short
|
||||||
One-line representation for each symbol.
|
One-line representation for each symbol.
|
||||||
-src
|
-src
|
||||||
|
|
|
||||||
|
|
@ -227,8 +227,16 @@ func doPkgsite(urlPath string) error {
|
||||||
fields := strings.Fields(vars)
|
fields := strings.Fields(vars)
|
||||||
if err == nil && len(fields) == 2 {
|
if err == nil && len(fields) == 2 {
|
||||||
goproxy, gomodcache := fields[0], fields[1]
|
goproxy, gomodcache := fields[0], fields[1]
|
||||||
goproxy = "file://" + filepath.Join(gomodcache, "cache", "download") + "," + goproxy
|
gomodcache = filepath.Join(gomodcache, "cache", "download")
|
||||||
env = append(env, "GOPROXY="+goproxy)
|
// 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"
|
const version = "v0.0.0-20250608123103-82c52f1754cd"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue