From 8ab5f20f532bc6e9de38ee457b0ef8dd30c80374 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sun, 19 Jan 2025 20:00:18 +0100 Subject: Initial commit for ogit. --- lib/handlers/dune | 8 ++++++++ lib/handlers/handlers.ml | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 lib/handlers/dune create mode 100644 lib/handlers/handlers.ml (limited to 'lib/handlers') diff --git a/lib/handlers/dune b/lib/handlers/dune new file mode 100644 index 0000000..ae64b71 --- /dev/null +++ b/lib/handlers/dune @@ -0,0 +1,8 @@ +(library + (name handlers) + (public_name ogit.handlers) + (libraries + dream + ogit.helpers + ogit.layouts) + (modules handlers)) diff --git a/lib/handlers/handlers.ml b/lib/handlers/handlers.ml new file mode 100644 index 0000000..7142439 --- /dev/null +++ b/lib/handlers/handlers.ml @@ -0,0 +1,43 @@ +(* Page layout function *) +let page_layout ~content = + "" + ^ Layouts.Header.header () + ^ Layouts.Topnav.topnav () + ^ "
" ^ content ^ "
" + ^ "" + +let root _ = + let content = + "

Available Repositories

" + in + Dream.html (page_layout ~content) + +let repo_root _ = + (* let repo_name = Dream.param request "repo_name" in *) + let content = + "
\n" + ^ "\n" + ^ "\n" + ^ "\n" + ^ "\n" + ^ "\n" + ^ "\n" + ^ "\n" + ^ "\n" + ^ "
BranchCommit messageAuthorAge
masterEnsure session[:id] before scoring: all tests now pass.Marius Peter2 weeks
 
TagDownloadAuthorAge
v1.0commit 175111f9d8...Marius Peter2 weeks
 
AgeCommit messageAuthor
2025-01-02Ensure session[:id] before scoring: all tests now pass.HEADmasterMarius Peter
" + in + Dream.html (page_layout ~content) + +let repo_tree request = + let repo_name = Dream.param request "repo_name" in + let repo_path = Filename.concat (Unix.getenv "HOME") ("git/" ^ repo_name) in + let content = + if Sys.file_exists repo_path && Sys.is_directory repo_path then + let files = Helpers.File_helpers.list_files repo_path in + "

Browsing repository: " ^ repo_name ^ "

" + else + "

Repository not found: " ^ repo_name ^ "

" + in + Dream.html (page_layout ~content) -- cgit v1.2.3