aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--handle_repo_index.go19
-rw-r--r--templates/repo_index.html19
-rw-r--r--types.go9
3 files changed, 47 insertions, 0 deletions
diff --git a/handle_repo_index.go b/handle_repo_index.go
index ab11500..7674423 100644
--- a/handle_repo_index.go
+++ b/handle_repo_index.go
@@ -68,6 +68,25 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request) {
readme_rendered_safe := template.HTML(bluemonday.UGCPolicy().SanitizeBytes(readme_rendered_unsafe.Bytes()))
data["readme"] = readme_rendered_safe
+ display_git_tree := make([]display_git_tree_entry_t, 0)
+ for _, entry := range tree.Entries {
+ display_git_tree_entry := display_git_tree_entry_t{}
+ os_mode, err := entry.Mode.ToOSFileMode()
+ if err != nil {
+ display_git_tree_entry.Mode = "----------"
+ } else {
+ display_git_tree_entry.Mode = os_mode.String()
+ }
+ display_git_tree_entry.Is_file = entry.Mode.IsFile()
+ display_git_tree_entry.Size, err = tree.Size(entry.Name)
+ if err != nil {
+ display_git_tree_entry.Size = 0
+ }
+ display_git_tree_entry.Name = entry.Name
+ display_git_tree = append(display_git_tree, display_git_tree_entry)
+ }
+ data["files"] = display_git_tree
+
err = templates.ExecuteTemplate(w, "repo_index", data)
if err != nil {
w.Write([]byte("Error rendering template: " + err.Error()))
diff --git a/templates/repo_index.html b/templates/repo_index.html
index 4241356..13bac72 100644
--- a/templates/repo_index.html
+++ b/templates/repo_index.html
@@ -30,6 +30,25 @@
{{- end }}
</tbody>
</table>
+<table id="file-tree">
+<thead>
+<tr>
+<!--th scope="col">Blob/Tree ID</th-->
+<th scope="col">Mode</th>
+<th scope="col">Name</th>
+<th scope="col">Size</th>
+</tr>
+</thead>
+<tbody>
+{{- range .files }}
+<tr>
+<td class="file-mode">{{ .Mode }}</td>
+<td class="file-name">{{ .Name }}</td>
+<td class="file-size">{{ .Size }}</td>
+</tr>
+{{- end }}
+</tbody>
+</table>
<div id="refs">
</div>
<div id="readme">
diff --git a/types.go b/types.go
new file mode 100644
index 0000000..d8bf42c
--- /dev/null
+++ b/types.go
@@ -0,0 +1,9 @@
+package main
+
+type display_git_tree_entry_t struct {
+ Name string
+ Mode string
+ Size int64
+ Is_file bool
+ Is_subtree bool
+}