diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/handlers.ml | 8 | ||||
-rw-r--r-- | lib/resolvers.ml | 6 | ||||
-rw-r--r-- | lib/views.ml | 56 |
3 files changed, 40 insertions, 30 deletions
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 = |