]> Sergey Matveev's repositories - goproxy.git/blob - main.go
Initial revision
[goproxy.git] / main.go
1 package main
2
3 import (
4         "flag"
5         "log"
6         "net/http"
7         "os"
8         "path"
9
10         "github.com/goproxy/goproxy"
11 )
12
13 type Logged struct{ goproxy http.Handler }
14
15 func (l *Logged) ServeHTTP(w http.ResponseWriter, r *http.Request) {
16         log.Print(r.URL)
17         l.goproxy.ServeHTTP(w, r)
18 }
19
20 func main() {
21         pth := flag.String("root", "/tmp/goproxy", "Path to storage")
22         bind := flag.String("bind", "[::1]:1234", "Address to listen on")
23         proxy := flag.String("proxy", "direct", "GOPROXY value")
24         sumdb := flag.String("sumdb", "off", "GOSUMDB value")
25         flag.Parse()
26         log.SetFlags(0)
27         log.Fatal(http.ListenAndServe(*bind, &Logged{&goproxy.Goproxy{
28                 GoBinEnv: append(
29                         os.Environ(),
30                         "GOPATH="+path.Join(*pth, "gopath"),
31                         "GOPROXY="+*proxy,
32                         "GOSUMDB="+*sumdb,
33                 ),
34                 Cacher: goproxy.DirCacher(*pth),
35         }}))
36 }