aboutsummaryrefslogtreecommitdiff
path: root/handle_group_index.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-02-12 19:16:41 +0800
committerRunxi Yu <me@runxiyu.org>2025-02-12 19:16:41 +0800
commitf828acac387aacadd2884837402b0e32b2368470 (patch)
tree475c374f5e9b1205136cf03171867ead7fad4291 /handle_group_index.go
parenthttp_router.go: Move from router.go and fix conditional placement bug (diff)
downloadforge-f828acac387aacadd2884837402b0e32b2368470.tar.gz
forge-f828acac387aacadd2884837402b0e32b2368470.tar.zst
forge-f828acac387aacadd2884837402b0e32b2368470.zip
*.go: Use the database for repo info, and fix ssh cloning repo
Diffstat (limited to '')
-rw-r--r--handle_group_index.go29
1 files changed, 18 insertions, 11 deletions
diff --git a/handle_group_index.go b/handle_group_index.go
index bc7a7f4..0bb4a57 100644
--- a/handle_group_index.go
+++ b/handle_group_index.go
@@ -2,29 +2,36 @@ package main
import (
"net/http"
- "os"
- "path/filepath"
- "strings"
)
func handle_group_repos(w http.ResponseWriter, r *http.Request, params map[string]string) {
data := make(map[string]any)
group_name := params["group_name"]
data["group_name"] = group_name
- entries, err := os.ReadDir(filepath.Join(config.Git.Root, group_name))
+
+ var names []string
+ rows, err := database.Query(r.Context(), "SELECT r.name FROM repos r JOIN groups g ON r.group_id = g.id WHERE g.name = $1;", group_name)
if err != nil {
- _, _ = w.Write([]byte("Error listing repos: " + err.Error()))
+ _, _ = w.Write([]byte("Error getting groups: " + err.Error()))
return
}
+ defer rows.Close()
- repos := []string{}
- for _, entry := range entries {
- this_name := entry.Name()
- if strings.HasSuffix(this_name, ".git") {
- repos = append(repos, strings.TrimSuffix(this_name, ".git"))
+ for rows.Next() {
+ var name string
+ if err := rows.Scan(&name); err != nil {
+ _, _ = w.Write([]byte("Error scanning row: " + err.Error()))
+ return
}
+ names = append(names, name)
}
- data["repos"] = repos
+
+ if err := rows.Err(); err != nil {
+ _, _ = w.Write([]byte("Error iterating over rows: " + err.Error()))
+ return
+ }
+
+ data["repos"] = names
err = templates.ExecuteTemplate(w, "group_repos", data)
if err != nil {