aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-02-13 02:06:28 +0800
committerRunxi Yu <me@runxiyu.org>2025-02-13 02:06:28 +0800
commitb9d367b8fe76f2f96351bca85f092bd9d62308f8 (patch)
treed36a8ac3fb97296bb3329e0a561c523ab0666f72
parentlogin: Stub login page (diff)
downloadforge-b9d367b8fe76f2f96351bca85f092bd9d62308f8.tar.gz
forge-b9d367b8fe76f2f96351bca85f092bd9d62308f8.tar.zst
forge-b9d367b8fe76f2f96351bca85f092bd9d62308f8.zip
http_handle_*.go: Use fmt.Fprintln, not w.Write
-rw-r--r--http_handle_group_index.go9
-rw-r--r--http_handle_index.go9
-rw-r--r--http_handle_login.go3
-rw-r--r--http_handle_repo_commit.go15
-rw-r--r--http_handle_repo_index.go13
-rw-r--r--http_handle_repo_log.go9
-rw-r--r--http_handle_repo_raw.go19
-rw-r--r--http_handle_repo_tree.go23
8 files changed, 54 insertions, 46 deletions
diff --git a/http_handle_group_index.go b/http_handle_group_index.go
index d342277..9c910de 100644
--- a/http_handle_group_index.go
+++ b/http_handle_group_index.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"net/http"
)
@@ -10,7 +11,7 @@ func handle_group_repos(w http.ResponseWriter, r *http.Request, params map[strin
var names []string
rows, err := database.Query(r.Context(), "SELECT r.name FROM repos r JOIN groups g ON r.group_id = g.id WHERE g.name = $1;", group_name)
if err != nil {
- _, _ = w.Write([]byte("Error getting groups: " + err.Error()))
+ fmt.Fprintln(w, "Error getting groups:", err.Error())
return
}
defer rows.Close()
@@ -18,14 +19,14 @@ func handle_group_repos(w http.ResponseWriter, r *http.Request, params map[strin
for rows.Next() {
var name string
if err := rows.Scan(&name); err != nil {
- _, _ = w.Write([]byte("Error scanning row: " + err.Error()))
+ fmt.Fprintln(w, "Error scanning row:", err.Error())
return
}
names = append(names, name)
}
if err := rows.Err(); err != nil {
- _, _ = w.Write([]byte("Error iterating over rows: " + err.Error()))
+ fmt.Fprintln(w, "Error iterating over rows:", err.Error())
return
}
@@ -33,7 +34,7 @@ func handle_group_repos(w http.ResponseWriter, r *http.Request, params map[strin
err = templates.ExecuteTemplate(w, "group_repos", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}
diff --git a/http_handle_index.go b/http_handle_index.go
index 4448272..bbb10d8 100644
--- a/http_handle_index.go
+++ b/http_handle_index.go
@@ -1,13 +1,14 @@
package main
import (
+ "fmt"
"net/http"
)
func handle_index(w http.ResponseWriter, r *http.Request, params map[string]any) {
rows, err := database.Query(r.Context(), "SELECT name FROM groups")
if err != nil {
- _, _ = w.Write([]byte("Error querying groups: " + err.Error()))
+ fmt.Fprintln(w, "Error querying groups: " + err.Error())
return
}
defer rows.Close()
@@ -16,14 +17,14 @@ func handle_index(w http.ResponseWriter, r *http.Request, params map[string]any)
for rows.Next() {
var groupName string
if err := rows.Scan(&groupName); err != nil {
- _, _ = w.Write([]byte("Error scanning group name: " + err.Error()))
+ fmt.Fprintln(w, "Error scanning group name: " + err.Error())
return
}
groups = append(groups, groupName)
}
if err := rows.Err(); err != nil {
- _, _ = w.Write([]byte("Error iterating over rows: " + err.Error()))
+ fmt.Fprintln(w, "Error iterating over rows: " + err.Error())
return
}
@@ -31,7 +32,7 @@ func handle_index(w http.ResponseWriter, r *http.Request, params map[string]any)
err = templates.ExecuteTemplate(w, "index", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template: " + err.Error())
return
}
}
diff --git a/http_handle_login.go b/http_handle_login.go
index ef094f1..b60a71c 100644
--- a/http_handle_login.go
+++ b/http_handle_login.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"net/http"
)
@@ -8,7 +9,7 @@ func handle_login(w http.ResponseWriter, r *http.Request, params map[string]any)
if r.Method != "POST" {
err := templates.ExecuteTemplate(w, "login", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}
diff --git a/http_handle_repo_commit.go b/http_handle_repo_commit.go
index 073bfa1..1a84862 100644
--- a/http_handle_repo_commit.go
+++ b/http_handle_repo_commit.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"net/http"
"strings"
@@ -20,23 +21,23 @@ func handle_repo_commit(w http.ResponseWriter, r *http.Request, params map[strin
group_name, repo_name, commit_id_specified_string := params["group_name"].(string), params["repo_name"].(string), params["commit_id"].(string)
repo, err := open_git_repo(r.Context(), group_name, repo_name)
if err != nil {
- _, _ = w.Write([]byte("Error opening repo: " + err.Error()))
+ fmt.Fprintln(w, "Error opening repo:", err.Error())
return
}
commit_id_specified_string_without_suffix := strings.TrimSuffix(commit_id_specified_string, ".patch")
commit_id := plumbing.NewHash(commit_id_specified_string_without_suffix)
commit_object, err := repo.CommitObject(commit_id)
if err != nil {
- _, _ = w.Write([]byte("Error getting commit object: " + err.Error()))
+ fmt.Fprintln(w, "Error getting commit object:", err.Error())
return
}
if commit_id_specified_string_without_suffix != commit_id_specified_string {
patch, err := format_patch_from_commit(commit_object)
if err != nil {
- _, _ = w.Write([]byte("Error formatting patch: " + err.Error()))
+ fmt.Fprintln(w, "Error formatting patch:", err.Error())
return
}
- _, _ = w.Write([]byte(patch))
+ fmt.Fprintln(w, patch)
return
}
commit_id_string := commit_object.Hash.String()
@@ -51,13 +52,13 @@ func handle_repo_commit(w http.ResponseWriter, r *http.Request, params map[strin
parent_commit_hash, patch, err := get_patch_from_commit(commit_object)
if err != nil {
- _, _ = w.Write([]byte("Error getting patch from commit: " + err.Error()))
+ fmt.Fprintln(w, "Error getting patch from commit:", err.Error())
return
}
params["parent_commit_hash"] = parent_commit_hash.String()
params["patch"] = patch
- // TODO: Remove unnecessary context
+ // TODO: Remove unnecessary context
// TODO: Prepend "+"/"-"/" " instead of solely distinguishing based on color
usable_file_patches := make([]usable_file_patch, 0)
for _, file_patch := range patch.FilePatches() {
@@ -79,7 +80,7 @@ func handle_repo_commit(w http.ResponseWriter, r *http.Request, params map[strin
err = templates.ExecuteTemplate(w, "repo_commit", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}
diff --git a/http_handle_repo_index.go b/http_handle_repo_index.go
index 866463d..a3920b1 100644
--- a/http_handle_repo_index.go
+++ b/http_handle_repo_index.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"net/http"
"net/url"
)
@@ -9,30 +10,30 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request, params map[string
group_name, repo_name := params["group_name"].(string), params["repo_name"].(string)
repo, err := open_git_repo(r.Context(), group_name, repo_name)
if err != nil {
- _, _ = w.Write([]byte("Error opening repo: " + err.Error()))
+ fmt.Fprintln(w, "Error opening repo:", err.Error())
return
}
head, err := repo.Head()
if err != nil {
- _, _ = w.Write([]byte("Error getting repo HEAD: " + err.Error()))
+ fmt.Fprintln(w, "Error getting repo HEAD:", err.Error())
return
}
params["ref"] = head.Name().Short()
head_hash := head.Hash()
recent_commits, err := get_recent_commits(repo, head_hash, 3)
if err != nil {
- _, _ = w.Write([]byte("Error getting recent commits: " + err.Error()))
+ fmt.Fprintln(w, "Error getting recent commits:", err.Error())
return
}
params["commits"] = recent_commits
commit_object, err := repo.CommitObject(head_hash)
if err != nil {
- _, _ = w.Write([]byte("Error getting commit object: " + err.Error()))
+ fmt.Fprintln(w, "Error getting commit object:", err.Error())
return
}
tree, err := commit_object.Tree()
if err != nil {
- _, _ = w.Write([]byte("Error getting file tree: " + err.Error()))
+ fmt.Fprintln(w, "Error getting file tree:", err.Error())
return
}
@@ -43,7 +44,7 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request, params map[string
err = templates.ExecuteTemplate(w, "repo_index", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}
diff --git a/http_handle_repo_log.go b/http_handle_repo_log.go
index f36fba2..7ab1294 100644
--- a/http_handle_repo_log.go
+++ b/http_handle_repo_log.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"net/http"
"github.com/go-git/go-git/v5/plumbing"
@@ -11,25 +12,25 @@ func handle_repo_log(w http.ResponseWriter, r *http.Request, params map[string]a
group_name, repo_name, ref_name := params["group_name"].(string), params["repo_name"].(string), params["ref"].(string)
repo, err := open_git_repo(r.Context(), group_name, repo_name)
if err != nil {
- _, _ = w.Write([]byte("Error opening repo: " + err.Error()))
+ fmt.Fprintln(w, "Error opening repo:", err.Error())
return
}
ref, err := repo.Reference(plumbing.NewBranchReferenceName(ref_name), true)
if err != nil {
- _, _ = w.Write([]byte("Error getting repo reference: " + err.Error()))
+ fmt.Fprintln(w, "Error getting repo reference:", err.Error())
return
}
ref_hash := ref.Hash()
commits, err := get_recent_commits(repo, ref_hash, -1)
if err != nil {
- _, _ = w.Write([]byte("Error getting recent commits: " + err.Error()))
+ fmt.Fprintln(w, "Error getting recent commits:", err.Error())
return
}
params["commits"] = commits
err = templates.ExecuteTemplate(w, "repo_log", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}
diff --git a/http_handle_repo_raw.go b/http_handle_repo_raw.go
index e647e32..6544610 100644
--- a/http_handle_repo_raw.go
+++ b/http_handle_repo_raw.go
@@ -1,6 +1,7 @@
package main
import (
+ "fmt"
"errors"
"net/http"
"path"
@@ -18,7 +19,7 @@ func handle_repo_raw(w http.ResponseWriter, r *http.Request, params map[string]a
if errors.Is(err, err_no_ref_spec) {
ref_type = "head"
} else {
- _, _ = w.Write([]byte("Error querying ref type: " + err.Error()))
+ fmt.Fprintln(w, "Error querying ref type:", err.Error())
return
}
}
@@ -27,24 +28,24 @@ func handle_repo_raw(w http.ResponseWriter, r *http.Request, params map[string]a
repo, err := open_git_repo(r.Context(), group_name, repo_name)
if err != nil {
- _, _ = w.Write([]byte("Error opening repo: " + err.Error()))
+ fmt.Fprintln(w, "Error opening repo:", err.Error())
return
}
ref_hash, err := get_ref_hash_from_type_and_name(repo, ref_type, ref_name)
if err != nil {
- _, _ = w.Write([]byte("Error getting ref hash: " + err.Error()))
+ fmt.Fprintln(w, "Error getting ref hash:", err.Error())
return
}
commit_object, err := repo.CommitObject(ref_hash)
if err != nil {
- _, _ = w.Write([]byte("Error getting commit object: " + err.Error()))
+ fmt.Fprintln(w, "Error getting commit object:", err.Error())
return
}
tree, err := commit_object.Tree()
if err != nil {
- _, _ = w.Write([]byte("Error getting file tree: " + err.Error()))
+ fmt.Fprintln(w, "Error getting file tree:", err.Error())
return
}
@@ -56,7 +57,7 @@ func handle_repo_raw(w http.ResponseWriter, r *http.Request, params map[string]a
if err != nil {
file, err := tree.File(path_spec)
if err != nil {
- _, _ = w.Write([]byte("Error retrieving path: " + err.Error()))
+ fmt.Fprintln(w, "Error retrieving path:", err.Error())
return
}
if len(raw_path_spec) != 0 && raw_path_spec[len(raw_path_spec)-1] == '/' {
@@ -65,10 +66,10 @@ func handle_repo_raw(w http.ResponseWriter, r *http.Request, params map[string]a
}
file_contents, err := file.Contents()
if err != nil {
- _, _ = w.Write([]byte("Error reading file: " + err.Error()))
+ fmt.Fprintln(w, "Error reading file:", err.Error())
return
}
- _, _ = w.Write([]byte(file_contents))
+ fmt.Fprintln(w, file_contents)
return
}
}
@@ -82,7 +83,7 @@ func handle_repo_raw(w http.ResponseWriter, r *http.Request, params map[string]a
err = templates.ExecuteTemplate(w, "repo_raw_dir", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}
diff --git a/http_handle_repo_tree.go b/http_handle_repo_tree.go
index 0132239..acc03e4 100644
--- a/http_handle_repo_tree.go
+++ b/http_handle_repo_tree.go
@@ -3,6 +3,7 @@ package main
import (
"bytes"
"errors"
+ "fmt"
"html/template"
"net/http"
"path"
@@ -22,29 +23,29 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
if errors.Is(err, err_no_ref_spec) {
ref_type = "head"
} else {
- _, _ = w.Write([]byte("Error querying ref type: " + err.Error()))
+ fmt.Fprintln(w, "Error querying ref type:", err.Error())
return
}
}
params["ref_type"], params["ref"], params["path_spec"] = ref_type, ref_name, path_spec
repo, err := open_git_repo(r.Context(), group_name, repo_name)
if err != nil {
- _, _ = w.Write([]byte("Error opening repo: " + err.Error()))
+ fmt.Fprintln(w, "Error opening repo:", err.Error())
return
}
ref_hash, err := get_ref_hash_from_type_and_name(repo, ref_type, ref_name)
if err != nil {
- _, _ = w.Write([]byte("Error getting ref hash: " + err.Error()))
+ fmt.Fprintln(w, "Error getting ref hash:", err.Error())
return
}
commit_object, err := repo.CommitObject(ref_hash)
if err != nil {
- _, _ = w.Write([]byte("Error getting commit object: " + err.Error()))
+ fmt.Fprintln(w, "Error getting commit object:", err.Error())
return
}
tree, err := commit_object.Tree()
if err != nil {
- _, _ = w.Write([]byte("Error getting file tree: " + err.Error()))
+ fmt.Fprintln(w, "Error getting file tree:", err.Error())
return
}
@@ -56,7 +57,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
if err != nil {
file, err := tree.File(path_spec)
if err != nil {
- _, _ = w.Write([]byte("Error retrieving path: " + err.Error()))
+ fmt.Fprintln(w, "Error retrieving path:", err.Error())
return
}
if len(raw_path_spec) != 0 && raw_path_spec[len(raw_path_spec)-1] == '/' {
@@ -65,7 +66,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
}
file_contents, err := file.Contents()
if err != nil {
- _, _ = w.Write([]byte("Error reading file: " + err.Error()))
+ fmt.Fprintln(w, "Error reading file:", err.Error())
return
}
lexer := chroma_lexers.Match(path_spec)
@@ -74,7 +75,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
}
iterator, err := lexer.Tokenise(nil, file_contents)
if err != nil {
- _, _ = w.Write([]byte("Error tokenizing code: " + err.Error()))
+ fmt.Fprintln(w, "Error tokenizing code:", err.Error())
return
}
var formatted_unencapsulated bytes.Buffer
@@ -82,7 +83,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
formatter := chroma_formatters_html.New(chroma_formatters_html.WithClasses(true), chroma_formatters_html.TabWidth(8))
err = formatter.Format(&formatted_unencapsulated, style, iterator)
if err != nil {
- _, _ = w.Write([]byte("Error formatting code: " + err.Error()))
+ fmt.Fprintln(w, "Error formatting code:", err.Error())
return
}
formatted_encapsulated := template.HTML(formatted_unencapsulated.Bytes())
@@ -90,7 +91,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
err = templates.ExecuteTemplate(w, "repo_tree_file", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
return
@@ -107,7 +108,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request, params map[string]
err = templates.ExecuteTemplate(w, "repo_tree_dir", params)
if err != nil {
- _, _ = w.Write([]byte("Error rendering template: " + err.Error()))
+ fmt.Fprintln(w, "Error rendering template:", err.Error())
return
}
}