parent:
c4520ece0b4f0765894e05bd889c3a893b93a189
nmyk <nick@nmyk.io>
2026-02-23T21:53:24-05:00
format times better fix some error handling
diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go
index 8f04a45e151430b71265c951041141045ed8b3f5..9b30b6891f9fe71546e10a9bfa9d5a092e7c6781 100644
--- a/internal/handlers/handlers.go
+++ b/internal/handlers/handlers.go
@@ -78,6 +78,12 @@ Funcs(template.FuncMap{
"css": func() template.CSS {
return template.CSS(s.CSS)
},
+ "humanize": func(t time.Time) string {
+ return humanize.Time(t)
+ },
+ "rfc3339": func(t time.Time) string {
+ return t.Format(time.RFC3339)
+ },
}).
ParseFS(
Templates,
@@ -101,9 +107,8 @@ Repos []RepoMeta
}
type RepoMeta struct {
- Name string
- Updated string
- updateTime time.Time
+ Name string
+ Updated time.Time
}
func (s Server) ListRepos(w http.ResponseWriter, _ *http.Request) {
@@ -117,23 +122,23 @@ for _, repo := range repos {
ref, err := repo.Head()
if err != nil {
s.error(w, err)
+ return
}
commit, err := repo.CommitObject(ref.Hash())
if err != nil {
s.error(w, err)
+ return
}
- lastUpdatedTime := commit.Committer.When
- lastUpdated := humanize.Time(lastUpdatedTime)
+ lastUpdated := commit.Committer.When
meta := RepoMeta{
repo.Name,
lastUpdated,
- lastUpdatedTime,
}
repoList = append(repoList, meta)
}
slices.SortFunc(repoList, func(a RepoMeta, b RepoMeta) int {
// order by updateTime descending
- return -1 * a.updateTime.Compare(b.updateTime)
+ return -1 * a.Updated.Compare(b.Updated)
})
data := IndexData{
Title: s.Hostname,
@@ -213,7 +218,7 @@
type CommitMeta struct {
Hash string
Author string
- When string
+ When time.Time
Message string
}
@@ -247,7 +252,7 @@ err = iter.ForEach(func(c *object.Commit) error {
commits = append(commits, CommitMeta{
Hash: c.Hash.String(),
Author: fmtAuthor(c.Author.Name, c.Author.Email),
- When: c.Author.When.Format(time.RFC3339),
+ When: c.Author.When,
Message: c.Message,
})
return nil
@@ -256,6 +261,9 @@ if err != nil {
s.error(w, err)
return
}
+ slices.SortFunc(commits, func(a CommitMeta, b CommitMeta) int {
+ return -1 * a.When.Compare(b.When)
+ })
data := CommitsData{
Repo: repoName,
Ref: commit.RefName,
@@ -310,7 +318,7 @@ data := CommitData{
CommitMeta: CommitMeta{
Hash: commit.Hash.String(),
Author: fmtAuthor(commit.Author.Name, commit.Author.Email),
- When: commit.Author.When.Format(time.RFC3339),
+ When: commit.Author.When,
Message: commit.Message,
},
Repo: repoName,
@@ -548,6 +556,7 @@ w.Header().Add("Cache-Control", "no-cache")
w.WriteHeader(http.StatusOK)
if err := core.UploadPack(repoName, bodyReader, w); err != nil {
s.error(w, err)
+ return
}
}
diff --git a/internal/handlers/templates/commit.tmpl b/internal/handlers/templates/commit.tmpl
index 4ab8e9972dc1763f14bd153e10ae8f81473c6eb3..c05d5066ad514bdd1327adae463af2e61e40103e 100644
--- a/internal/handlers/templates/commit.tmpl
+++ b/internal/handlers/templates/commit.tmpl
@@ -3,9 +3,13 @@ {{define "content"}}
<h1><a href="/{{.Repo}}">{{.Repo}}</a></h1>
<p><a href="/{{.Repo}}/refs">refs</a></p>
<h4>commit {{.Hash}} | <a href="/{{.Repo}}/tree/{{.Hash}}">tree</a></h4>
- <p>parent{{ if gt (len .Parents) 1 }}s{{end}}: {{ range .Parents }}<br><a href="/{{$.Repo}}/commit/{{.}}">{{.}}</a> {{end}}</p>
+ <p>{{ if gt (len .Parents) 0 }}parent{{ if gt (len .Parents) 1 }}s{{end}}:{{end}}
+ {{ range .Parents }}
+ <br><a href="/{{$.Repo}}/commit/{{.}}">{{.}}</a>
+ {{end}}
+ </p>
<p>{{.Author}}</p>
- <p>{{.When}}</p>
+ <p>{{rfc3339 .When}}</p>
<pre>{{.Message}}</pre>
{{if ne "" .Patch}}<hr><pre>{{.Patch}}</pre>{{end}}
{{end}}
diff --git a/internal/handlers/templates/commits.tmpl b/internal/handlers/templates/commits.tmpl
index a3d3a4a1d1df8ee9a7da64d74e5d15e604a864cd..0ba11f5f750f9d8efd224bc0cae4798de7a55e26 100644
--- a/internal/handlers/templates/commits.tmpl
+++ b/internal/handlers/templates/commits.tmpl
@@ -7,7 +7,7 @@ <h2>commits</h2>
{{range .Commits}}
<p><a href="/{{$.Repo}}/commit/{{.Hash}}">{{.Hash}}</a></p>
<p>{{.Author}}</p>
- <p>{{.When}}</p>
+ <p title="{{rfc3339 .When}}">{{humanize .When}}</p>
<pre>{{.Message}}</pre>
<br>
{{end}}
diff --git a/internal/handlers/templates/repos.tmpl b/internal/handlers/templates/repos.tmpl
index 4dcbf3937e14b8b3b3fbc34733878f92aa396db4..60d75df9fd4ef27aa38475c6b58e6b1933fcc9f8 100644
--- a/internal/handlers/templates/repos.tmpl
+++ b/internal/handlers/templates/repos.tmpl
@@ -7,7 +7,7 @@ <tbody>
{{range .Repos}}
<tr>
<td><a href="/{{.Name}}">{{.Name}}</a></td>
- <td>{{.Updated}}</td>
+ <td>{{humanize .Updated}}</td>
</tr>
{{end}}
</tbody>