aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--http_handle_gc.go14
-rw-r--r--http_server.go3
-rw-r--r--templates/index.tmpl3
3 files changed, 20 insertions, 0 deletions
diff --git a/http_handle_gc.go b/http_handle_gc.go
new file mode 100644
index 0000000..3f7717c
--- /dev/null
+++ b/http_handle_gc.go
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: AGPL-3.0-only
+// SPDX-FileContributor: Runxi Yu <https://runxiyu.org>
+
+package main
+
+import (
+ "net/http"
+ "runtime"
+)
+
+func handle_gc(w http.ResponseWriter, r *http.Request, params map[string]any) {
+ runtime.GC()
+ http.Redirect(w, r, "/", http.StatusSeeOther)
+}
diff --git a/http_server.go b/http_server.go
index 1b9bef6..f2238d8 100644
--- a/http_server.go
+++ b/http_server.go
@@ -78,6 +78,9 @@ func (router *http_router_t) ServeHTTP(w http.ResponseWriter, r *http.Request) {
case "users":
handle_users(w, r, params)
return
+ case "gc":
+ handle_gc(w, r, params)
+ return
default:
http.Error(w, fmt.Sprintf("Unknown system module type: %s", segments[1]), http.StatusNotFound)
return
diff --git a/templates/index.tmpl b/templates/index.tmpl
index 3bef7b0..2aa5729 100644
--- a/templates/index.tmpl
+++ b/templates/index.tmpl
@@ -56,6 +56,9 @@
</tbody>
</table>
</div>
+ <div class="padding-wrapper">
+ <a href="/:/gc" class="btn btn-danger">Run the garbage collector</a>
+ </div>
<footer>
{{- template "footer" . -}}
</footer>