diff options
author | Runxi Yu <me@runxiyu.org> | 2025-02-10 12:21:51 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-02-10 12:21:51 +0800 |
commit | 23f2025a23681042ebc332d92bd53bfbd9ebd49a (patch) | |
tree | 9c4c14e44a37a96bcb256f019c20945ef27a858e /handle_repo_index.go | |
parent | style.css: Add some non-fancy styles (diff) | |
download | forge-23f2025a23681042ebc332d92bd53bfbd9ebd49a.tar.gz forge-23f2025a23681042ebc332d92bd53bfbd9ebd49a.tar.zst forge-23f2025a23681042ebc332d92bd53bfbd9ebd49a.zip |
handle_repo_{index,tree}: Don't crash on missing README
Diffstat (limited to 'handle_repo_index.go')
-rw-r--r-- | handle_repo_index.go | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/handle_repo_index.go b/handle_repo_index.go index 23dd334..20cfb89 100644 --- a/handle_repo_index.go +++ b/handle_repo_index.go @@ -57,25 +57,25 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request) { } readme_file, err := tree.File("README.md") if err != nil { - w.Write([]byte("Error getting file: " + err.Error())) - return - } - readme_file_contents, err := readme_file.Contents() - var readme_rendered_unsafe bytes.Buffer - err = goldmark.Convert([]byte(readme_file_contents), &readme_rendered_unsafe) - if err != nil { - readme_rendered_unsafe.WriteString("Unable to render README: " + err.Error()) - return + data["readme"] = "There is no README for this repository." + } else { + readme_file_contents, err := readme_file.Contents() + var readme_rendered_unsafe bytes.Buffer + err = goldmark.Convert([]byte(readme_file_contents), &readme_rendered_unsafe) + if err != nil { + readme_rendered_unsafe.WriteString("Unable to render README: " + err.Error()) + return + } + readme_rendered_safe := template.HTML(bluemonday.UGCPolicy().SanitizeBytes(readme_rendered_unsafe.Bytes())) + data["readme"] = readme_rendered_safe } - 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 = "----" + display_git_tree_entry.Mode = "x---" } else { display_git_tree_entry.Mode = os_mode.String()[:4] } |