From 30379b008028e3c2445fb5fc5a846fd528590c89 Mon Sep 17 00:00:00 2001 From: MrMelon54 Date: Sat, 16 Mar 2024 02:00:50 +0000 Subject: [PATCH] Lot errors from GetRepositories --- cmd/gomvn/main.go | 5 ++++- paths/repo.go | 9 ++++++--- routes/index.go.html | 2 +- routes/router.go | 15 ++++++++++++--- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/cmd/gomvn/main.go b/cmd/gomvn/main.go index 22449f4..5dff2bf 100644 --- a/cmd/gomvn/main.go +++ b/cmd/gomvn/main.go @@ -55,7 +55,10 @@ func main() { if err != nil { log.Fatal("[GoMVN] Error: invalid database: ", err) } - mustHaveUser(db) + err = mustHaveUser(db) + if err != nil { + log.Fatal("[GoMVN] Error: failed to ensure at least one user exists: ", err) + } repoBasePath := filepath.Join(wd, "repositories") err = os.MkdirAll(repoBasePath, os.ModePerm) diff --git a/paths/repo.go b/paths/repo.go index aa65351..1dfc65c 100644 --- a/paths/repo.go +++ b/paths/repo.go @@ -8,12 +8,12 @@ import ( "time" ) -func GetRepositories(basePath string, repository []string) map[string][]*database.Artifact { +func GetRepositories(basePath string, repository []string) (map[string][]*database.Artifact, error) { result := map[string][]*database.Artifact{} for _, repo := range repository { result[repo] = []*database.Artifact{} repoPath := filepath.Join(basePath, repo) - _ = filepath.Walk(repoPath, func(path string, info os.FileInfo, err error) error { + err := filepath.Walk(repoPath, func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(path, ".pom") { path = strings.Replace(path, "\\", "/", -1) path = strings.Replace(path, repoPath+"/", "", 1) @@ -22,8 +22,11 @@ func GetRepositories(basePath string, repository []string) map[string][]*databas } return nil }) + if err != nil { + return nil, err + } } - return result + return result, nil } func newArtifact(p string, mod time.Time) *database.Artifact { diff --git a/routes/index.go.html b/routes/index.go.html index ff4c7e8..c5b199b 100644 --- a/routes/index.go.html +++ b/routes/index.go.html @@ -14,7 +14,7 @@ {{range $k, $v := .Repositories}} diff --git a/routes/router.go b/routes/router.go index de20b58..e2ef56e 100644 --- a/routes/router.go +++ b/routes/router.go @@ -9,6 +9,7 @@ import ( "github.com/thanhpk/randstr" "html/template" "io" + "log" "net/http" "os" "path" @@ -90,11 +91,19 @@ var indexHtml string var indexTemplate = template.Must(template.New("index").Parse(indexHtml)) -func (r *routeCtx) handleIndex(rw http.ResponseWriter, req *http.Request, params httprouter.Params) { - _ = indexTemplate.Execute(rw, map[string]any{ +func (r *routeCtx) handleIndex(rw http.ResponseWriter, _ *http.Request, _ httprouter.Params) { + repositories, err := paths.GetRepositories(r.basePath, r.repository) + if err != nil { + http.Error(rw, "500 Internal Server Error", http.StatusInternalServerError) + return + } + err = indexTemplate.Execute(rw, map[string]any{ "Name": r.name, - "Repositories": paths.GetRepositories(r.basePath, r.repository), + "Repositories": repositories, }) + if err != nil { + log.Println("[GoMVN] Index template error: ", err) + } } func (r *routeCtx) handlePut(rw http.ResponseWriter, req *http.Request, params httprouter.Params) {