mirror of https://github.com/goproxyio/goproxy
remove pathSuffix
parent
9d4ae6116f
commit
42316d3ead
|
@ -0,0 +1 @@
|
||||||
|
goproxy
|
11
main.go
11
main.go
|
@ -7,6 +7,7 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -40,7 +41,7 @@ func mainHandler(inner http.Handler) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
fmt.Fprintf(os.Stdout, "goproxy: %s %s download %s\n", r.RemoteAddr, time.Now().Format("2006-01-02 15:04:05"), r.URL.Path)
|
fmt.Fprintf(os.Stdout, "goproxy: %s %s download %s\n", r.RemoteAddr, time.Now().Format("2006-01-02 15:04:05"), r.URL.Path)
|
||||||
if _, err := os.Stat(filepath.Join(cacheDir, r.URL.Path)); err != nil {
|
if _, err := os.Stat(filepath.Join(cacheDir, r.URL.Path)); err != nil {
|
||||||
suffix := pathSuffix(r.URL.Path)
|
suffix := path.Ext(r.URL.Path)
|
||||||
if suffix == ".info" || suffix == ".mod" || suffix == ".zip" {
|
if suffix == ".info" || suffix == ".mod" || suffix == ".zip" {
|
||||||
mod := strings.Split(r.URL.Path, "/@v/")
|
mod := strings.Split(r.URL.Path, "/@v/")
|
||||||
if len(mod) != 2 {
|
if len(mod) != 2 {
|
||||||
|
@ -62,9 +63,6 @@ func mainHandler(inner http.Handler) http.Handler {
|
||||||
// ignore the error, incorrect tag may be given
|
// ignore the error, incorrect tag may be given
|
||||||
// forward to inner.ServeHTTP
|
// forward to inner.ServeHTTP
|
||||||
goGet(path, version, suffix, w, r)
|
goGet(path, version, suffix, w, r)
|
||||||
} else {
|
|
||||||
ReturnBadRequest(w, fmt.Errorf("bad module path:%s", r.URL.Path))
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(r.URL.Path, "/@v/list") {
|
if strings.HasSuffix(r.URL.Path, "/@v/list") {
|
||||||
w.Write([]byte(""))
|
w.Write([]byte(""))
|
||||||
|
@ -75,11 +73,6 @@ func mainHandler(inner http.Handler) http.Handler {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func pathSuffix(path string) string {
|
|
||||||
suffixIndex := strings.LastIndex(path, ".")
|
|
||||||
return path[suffixIndex:]
|
|
||||||
}
|
|
||||||
|
|
||||||
func goGet(path, version, suffix string, w http.ResponseWriter, r *http.Request) error {
|
func goGet(path, version, suffix string, w http.ResponseWriter, r *http.Request) error {
|
||||||
cmd := exec.Command("go", "get", "-d", path+"@"+version)
|
cmd := exec.Command("go", "get", "-d", path+"@"+version)
|
||||||
stdout, err := cmd.StdoutPipe()
|
stdout, err := cmd.StdoutPipe()
|
||||||
|
|
Loading…
Reference in New Issue