]> Cypherpunks.ru repositories - gocheese.git/blobdiff - gocheese.go
More errors logging
[gocheese.git] / gocheese.go
index 67e7829497683cf08f76dd8b6934985b51c11aa6..9b7a80d81208eaf4494e1a353463cb1afcf34049 100644 (file)
@@ -103,14 +103,15 @@ var (
        pypiURLParsed *url.URL
 )
 
-func mkdirForPkg(w http.ResponseWriter, r *http.Request, dir string) bool {
-       path := filepath.Join(*root, dir)
+func mkdirForPkg(w http.ResponseWriter, r *http.Request, pkgName string) bool {
+       path := filepath.Join(*root, pkgName)
        if _, err := os.Stat(path); os.IsNotExist(err) {
                if err = os.Mkdir(path, os.FileMode(0777)); err != nil {
+                       log.Println("error", r.RemoteAddr, "mkdir", pkgName, err)
                        http.Error(w, err.Error(), http.StatusInternalServerError)
                        return false
                }
-               log.Println(r.RemoteAddr, "mkdir", dir)
+               log.Println(r.RemoteAddr, "mkdir", pkgName)
        }
        return true
 }
@@ -118,6 +119,7 @@ func mkdirForPkg(w http.ResponseWriter, r *http.Request, dir string) bool {
 func listRoot(w http.ResponseWriter, r *http.Request) {
        files, err := ioutil.ReadDir(*root)
        if err != nil {
+               log.Println("error", r.RemoteAddr, "root", err)
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
@@ -139,20 +141,20 @@ func listRoot(w http.ResponseWriter, r *http.Request) {
 func listDir(
        w http.ResponseWriter,
        r *http.Request,
-       dir string,
-       autorefresh,
-       gpgUpdate bool,
+       pkgName string,
+       autorefresh, gpgUpdate bool,
 ) {
-       dirPath := filepath.Join(*root, dir)
+       dirPath := filepath.Join(*root, pkgName)
        if autorefresh {
-               if !refreshDir(w, r, dir, "", gpgUpdate) {
+               if !refreshDir(w, r, pkgName, "", gpgUpdate) {
                        return
                }
-       } else if _, err := os.Stat(dirPath); os.IsNotExist(err) && !refreshDir(w, r, dir, "", false) {
+       } else if _, err := os.Stat(dirPath); os.IsNotExist(err) && !refreshDir(w, r, pkgName, "", false) {
                return
        }
        fis, err := ioutil.ReadDir(dirPath)
        if err != nil {
+               log.Println("error", r.RemoteAddr, "list", pkgName, err)
                http.Error(w, err.Error(), http.StatusInternalServerError)
                return
        }
@@ -161,7 +163,7 @@ func listDir(
                files[fi.Name()] = struct{}{}
        }
        var result bytes.Buffer
-       result.WriteString(fmt.Sprintf(HTMLBegin, dir))
+       result.WriteString(fmt.Sprintf(HTMLBegin, pkgName))
        for _, algo := range knownHashAlgos {
                for fn, _ := range files {
                        if killed {
@@ -175,6 +177,7 @@ func listDir(
                        delete(files, fn)
                        digest, err := ioutil.ReadFile(filepath.Join(dirPath, fn))
                        if err != nil {
+                               log.Println("error", r.RemoteAddr, "list", fn, err)
                                http.Error(w, err.Error(), http.StatusInternalServerError)
                                return
                        }
@@ -188,7 +191,7 @@ func listDir(
                        result.WriteString(fmt.Sprintf(
                                HTMLElement,
                                strings.Join([]string{
-                                       *refreshURLPath, dir, "/", fnClean,
+                                       *refreshURLPath, pkgName, "/", fnClean,
                                        "#", algo, "=", hex.EncodeToString(digest),
                                }, ""),
                                gpgSigAttr,
@@ -200,11 +203,11 @@ func listDir(
        w.Write(result.Bytes())
 }
 
-func servePkg(w http.ResponseWriter, r *http.Request, dir, filename string) {
+func servePkg(w http.ResponseWriter, r *http.Request, pkgName, filename string) {
        log.Println(r.RemoteAddr, "get", filename)
-       path := filepath.Join(*root, dir, filename)
+       path := filepath.Join(*root, pkgName, filename)
        if _, err := os.Stat(path); os.IsNotExist(err) {
-               if !refreshDir(w, r, dir, filename, false) {
+               if !refreshDir(w, r, pkgName, filename, false) {
                        return
                }
        }
@@ -280,7 +283,9 @@ func main() {
                log.Fatalln(err)
        }
        refreshPasswd()
-       log.Println("root:", *root, "bind:", *bind)
+       log.Println("root:", *root)
+       log.Println("bind:", *bind)
+       log.Println("pypi:", *pypiURL)
 
        ln, err := net.Listen("tcp", *bind)
        if err != nil {
@@ -304,14 +309,14 @@ func main() {
        signal.Notify(needsShutdown, syscall.SIGTERM, syscall.SIGINT)
        go func() {
                for range needsRefreshPasswd {
-                       log.Println("Refreshing passwords")
+                       log.Println("refreshing passwords")
                        refreshPasswd()
                }
        }()
        go func(s *http.Server) {
                <-needsShutdown
                killed = true
-               log.Println("Shutting down")
+               log.Println("shutting down")
                ctx, cancel := context.WithTimeout(context.TODO(), time.Minute)
                exitErr <- s.Shutdown(ctx)
                cancel()