mirror of
https://github.com/golang/go
synced 2024-09-29 22:14:29 -06:00
cmd/go/internal/modfetch: workaround file URL parsing on Windows
Remove the leading slash from GOPROXY file:// URLs. Updates #31675 Change-Id: Id45af2a806afc3c216181c13f6bc73713b925693 Reviewed-on: https://go-review.googlesource.com/c/go/+/173499 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Cottrell <iancottrell@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
f30c564529
commit
41d1bf0efc
@ -14,9 +14,11 @@ import (
|
||||
"os"
|
||||
pathpkg "path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
"unicode"
|
||||
|
||||
"cmd/go/internal/base"
|
||||
"cmd/go/internal/cfg"
|
||||
@ -219,6 +221,11 @@ func (p *proxyRepo) getBody(path string) (io.ReadCloser, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if runtime.GOOS == "windows" && len(rawPath) >= 4 && rawPath[0] == '/' && unicode.IsLetter(rune(rawPath[1])) && rawPath[2] == ':' {
|
||||
// On Windows, file URLs look like "file:///C:/foo/bar". url.Path will
|
||||
// start with a slash which must be removed. See golang.org/issue/6027.
|
||||
rawPath = rawPath[1:]
|
||||
}
|
||||
return os.Open(filepath.FromSlash(rawPath))
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user