summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/main.ml2
-rw-r--r--lib/handlers.ml8
-rw-r--r--lib/resolvers.ml6
-rw-r--r--lib/views.ml56
4 files changed, 42 insertions, 30 deletions
diff --git a/bin/main.ml b/bin/main.ml
index 2b3d552..fdc8baf 100644
--- a/bin/main.ml
+++ b/bin/main.ml
@@ -1 +1,3 @@
+(* -*- mode: tuareg; -*- *)
+
let () = Ogit.Main.run ()
diff --git a/lib/handlers.ml b/lib/handlers.ml
index add6378..86bc1a2 100644
--- a/lib/handlers.ml
+++ b/lib/handlers.ml
@@ -53,11 +53,11 @@ module Repo = struct
let readme req =
let repo = Dream.param req "repo" in
let* readme = Resolvers.Repo.readme repo in
+ Views.Repo.file repo
+ @@
match readme with
- | None ->
- let content = "README does not exist for " ^ repo in
- Views.Repo.file repo { content }
- | Some file -> Views.Repo.file repo file
+ | None -> { content = "README does not exist for " ^ repo }
+ | Some file -> file
end
let all_handlers =
diff --git a/lib/resolvers.ml b/lib/resolvers.ml
index 873b137..e0b85c3 100644
--- a/lib/resolvers.ml
+++ b/lib/resolvers.ml
@@ -83,8 +83,8 @@ module Reference = struct
let tags repo =
let* references = all repo in
- let is_branch reference = String.starts_with ~prefix:"v" reference.name in
- Lwt_result.return @@ List.filter is_branch references
+ let is_tag reference = String.starts_with ~prefix:"v" reference.name in
+ Lwt_result.return @@ List.filter is_tag references
let of_id repo id =
let* branches = branches repo in
@@ -115,7 +115,7 @@ module Entry = struct
{ hash; name; perm }
let is_readme { name; _ } =
- String.lowercase_ascii name |> String.starts_with ~prefix:"readme"
+ String.(lowercase_ascii name |> starts_with ~prefix:"readme")
end
module Tree = struct
diff --git a/lib/views.ml b/lib/views.ml
index 9345bf0..74e8e7a 100644
--- a/lib/views.ml
+++ b/lib/views.ml
@@ -10,7 +10,7 @@ type body_data = {
repo : string option;
subtitle : string;
active : page;
- content : Dream_html.node list;
+ content : node list;
}
let page_to_nav_item repo = function
@@ -155,28 +155,6 @@ module Repo = struct
];
}
- let branches repo branches =
- respond
- @@ Page.render ~page_title:(page_title repo)
- {
- repo = Some repo;
- title = repo;
- subtitle = Resolvers.repo_description repo;
- active = Branches;
- content = HTML.[ ul [] @@ List.map (li_of_branch repo) branches ];
- }
-
- let tags repo tags =
- respond
- @@ Page.render ~page_title:(page_title repo)
- {
- repo = Some repo;
- title = repo;
- subtitle = Resolvers.repo_description repo;
- active = Tags;
- content = HTML.[ ul [] @@ List.map (li_of_tag repo) tags ];
- }
-
let commits repo commits =
respond
@@ Page.render ~page_title:(page_title repo)
@@ -234,6 +212,38 @@ module Repo = struct
active = Summary;
content = HTML.[ h3 [] [ txt "%s" message ] ];
}
+
+ let branches repo branches =
+ let content =
+ match branches with
+ | [] -> HTML.[ p [] [ txt "No branches for repo %s" repo ] ]
+ | branches -> HTML.[ ul [] @@ List.map (li_of_branch repo) branches ]
+ in
+ respond
+ @@ Page.render ~page_title:(page_title repo)
+ {
+ repo = Some repo;
+ title = repo;
+ subtitle = Resolvers.repo_description repo;
+ active = Branches;
+ content;
+ }
+
+ let tags repo tags =
+ let content =
+ match tags with
+ | [] -> HTML.[ p [] [ txt "No tags for repo %s" repo ] ]
+ | tags -> HTML.[ ul [] @@ List.map (li_of_tag repo) tags ]
+ in
+ respond
+ @@ Page.render ~page_title:(page_title repo)
+ {
+ repo = Some repo;
+ title = repo;
+ subtitle = Resolvers.repo_description repo;
+ active = Tags;
+ content;
+ }
end
let error_page message =
Copyright 2019--2025 Marius PETER