Lindenii Project Forge
Login
Commit info
ID662aeed1122dae0cbb74022b3bfb4013075c36f8
AuthorRunxi Yu<me@runxiyu.org>
Author dateTue, 11 Feb 2025 12:32:33 +0800
CommitterRunxi Yu<me@runxiyu.org>
Committer dateTue, 11 Feb 2025 12:32:33 +0800
Actions
Get patch
group_{index,repos}: Rename files too
package main

import (
	"net/http"
	"os"
	"path/filepath"
	"strings"
)

func handle_group_repos(w http.ResponseWriter, r *http.Request) {
	data := make(map[string]any)
	group_name := r.PathValue("group_name")
	data["group_name"] = group_name
	entries, err := os.ReadDir(filepath.Join(config.Git.Root, group_name))
	if err != nil {
		_, _ = w.Write([]byte("Error listing repos: " + err.Error()))
		return
	}

	repos := []string{}
	for _, entry := range entries {
		this_name := entry.Name()
		if strings.HasSuffix(this_name, ".git") {
			repos = append(repos, strings.TrimSuffix(this_name, ".git"))
		}
	}
	data["repos"] = repos

	err = templates.ExecuteTemplate(w, "group_repos", data)
	if err != nil {
		_, _ = w.Write([]byte("Error rendering template: " + err.Error()))
		return
	}
}
{{- define "group_repos" -}}
<!DOCTYPE html>
<html lang="en">
	<head>
		{{ template "head_common" . }}
		<title>Repos in {{ .group_name }} &ndash; Lindenii Forge</title>
	</head>
	<body class="group-index">
		<div class="padding-wrapper">
			<h1>
			Repos in {{ .group_name }}
			</h1>
			<ul>
				{{- range .repos }}
					<li>
						<a href="{{ . }}/">{{ . }}</a>
					</li>
				{{- end }}
			</ul>
		</div>
		<footer>
			{{ template "footer" . }}
		</footer>
	</body>
</html>
{{- end -}}