From 23f2025a23681042ebc332d92bd53bfbd9ebd49a Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Mon, 10 Feb 2025 12:21:51 +0800 Subject: [PATCH] handle_repo_{index,tree}: Don't crash on missing README --- handle_repo_index.go | 24 ++++++++++++------------ handle_repo_tree.go | 2 +- diff --git a/handle_repo_index.go b/handle_repo_index.go index 23dd33443a22755ebd360797fd6d0b9a763c78dc..20cfb893adb619a22009775f698063b81ad7a631 100644 --- a/handle_repo_index.go +++ b/handle_repo_index.go @@ -57,25 +57,25 @@ return } 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] } diff --git a/handle_repo_tree.go b/handle_repo_tree.go index e5ea2c94330d7857b4e48ff1143f60fef9318c9b..4e2d012259c784acea9c7f3575b232a7776a9946 100644 --- a/handle_repo_tree.go +++ b/handle_repo_tree.go @@ -78,7 +78,7 @@ } readme_file, err := target.File("README.md") if err != nil { - data["readme"] = "" + data["readme"] = "There is no README for this directory." } else { readme_file_contents, err := readme_file.Contents() var readme_rendered_unsafe bytes.Buffer -- 2.48.1