+
+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", pkgName)
+ }
+ return true
+}