From 6f9f62d453c94ac8d69baebcf51589d9b623d306 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 16 Feb 2025 02:28:55 +0800 Subject: repo_index: Add HTTP clone along with SSH --- http_handle_repo_index.go | 3 ++- remote_url.go | 14 ++++++++++++++ ssh_url_generation.go | 10 ---------- templates/repo_index.tmpl | 7 +++++-- 4 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 remote_url.go delete mode 100644 ssh_url_generation.go diff --git a/http_handle_repo_index.go b/http_handle_repo_index.go index daeabca..448373e 100644 --- a/http_handle_repo_index.go +++ b/http_handle_repo_index.go @@ -39,7 +39,8 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request, params map[string params["readme_filename"], params["readme"] = render_readme_at_tree(tree) params["files"] = build_display_git_tree(tree) - params["clone_url"] = generate_ssh_remote_url(group_name, repo_name) + params["http_clone_url"] = generate_http_remote_url(group_name, repo_name) + params["ssh_clone_url"] = generate_ssh_remote_url(group_name, repo_name) render_template(w, "repo_index", params) } diff --git a/remote_url.go b/remote_url.go new file mode 100644 index 0000000..f64d6ec --- /dev/null +++ b/remote_url.go @@ -0,0 +1,14 @@ +package main + +import ( + "net/url" + "strings" +) + +func generate_ssh_remote_url(group_name, repo_name string) string { + return strings.TrimSuffix(config.SSH.Root, "/") + "/" + url.PathEscape(group_name) + "/:/repos/" + url.PathEscape(repo_name) +} + +func generate_http_remote_url(group_name, repo_name string) string { + return strings.TrimSuffix(config.HTTP.Root, "/") + "/" + url.PathEscape(group_name) + "/:/repos/" + url.PathEscape(repo_name) +} diff --git a/ssh_url_generation.go b/ssh_url_generation.go deleted file mode 100644 index bdef57f..0000000 --- a/ssh_url_generation.go +++ /dev/null @@ -1,10 +0,0 @@ -package main - -import ( - "net/url" - "strings" -) - -func generate_ssh_remote_url(group_name, repo_name string) string { - return strings.TrimSuffix(config.SSH.Root, "/") + "/" + url.PathEscape(group_name) + "/:/repos/" + url.PathEscape(repo_name) -} diff --git a/templates/repo_index.tmpl b/templates/repo_index.tmpl index 29e597e..e858f6f 100644 --- a/templates/repo_index.tmpl +++ b/templates/repo_index.tmpl @@ -20,8 +20,11 @@ {{ .repo_name }} - Clone - git clone {{ .clone_url }} + Clone + git clone {{ .ssh_clone_url }} + + + git clone {{ .http_clone_url }} {{ if .repo_description }} -- cgit v1.2.3