aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git_misc.go24
-rw-r--r--handle_repo_index.go21
-rw-r--r--handle_repo_tree.go20
3 files changed, 27 insertions, 38 deletions
diff --git a/git_misc.go b/git_misc.go
new file mode 100644
index 0000000..c463cc4
--- /dev/null
+++ b/git_misc.go
@@ -0,0 +1,24 @@
+package main
+
+import "github.com/go-git/go-git/v5/plumbing/object"
+
+func build_display_git_tree(tree *object.Tree) []display_git_tree_entry_t {
+ 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 = "x---"
+ } else {
+ display_git_tree_entry.Mode = os_mode.String()[:4]
+ }
+ 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)
+ }
+ return display_git_tree
+}
diff --git a/handle_repo_index.go b/handle_repo_index.go
index 8fe6b8d..8418d70 100644
--- a/handle_repo_index.go
+++ b/handle_repo_index.go
@@ -51,26 +51,9 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request) {
_, _ = w.Write([]byte("Error getting file tree: " + err.Error()))
return
}
- data["readme"] = render_readme_at_tree(tree)
- 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 = "x---"
- } else {
- display_git_tree_entry.Mode = os_mode.String()[:4]
- }
- 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
+ data["readme"] = render_readme_at_tree(tree)
+ data["files"] = build_display_git_tree(tree)
err = templates.ExecuteTemplate(w, "repo_index", data)
if err != nil {
diff --git a/handle_repo_tree.go b/handle_repo_tree.go
index 152c979..0af1de5 100644
--- a/handle_repo_tree.go
+++ b/handle_repo_tree.go
@@ -82,25 +82,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request) {
}
data["readme"] = render_readme_at_tree(tree)
-
- display_git_tree := make([]display_git_tree_entry_t, 0)
- for _, entry := range target.Entries {
- display_git_tree_entry := display_git_tree_entry_t{}
- os_mode, err := entry.Mode.ToOSFileMode()
- if err != nil {
- display_git_tree_entry.Mode = "x---"
- } else {
- display_git_tree_entry.Mode = os_mode.String()[:4]
- }
- display_git_tree_entry.Is_file = entry.Mode.IsFile()
- display_git_tree_entry.Size, err = target.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
+ data["files"] = build_display_git_tree(tree)
err = templates.ExecuteTemplate(w, "repo_tree_dir", data)
if err != nil {