[OCaml] Mobile-friendly clone of cgit.
refactor extract fetch_repo_dates helper in handlers
The date-fetching Lwt_list.map_p block was duplicated between root and project_dir. Now both call fetch_repo_dates.
lib/handlers.ml
@@ -64,22 +64,24 @@
64
64
in
65
65
List.fold_left (walk prefix) [] nodes |> List.rev
66
66
67
Added:
let fetch_repo_dates config repo_paths =
68
Added:
let open Lwt.Syntax in
69
Added:
Lwt_list.map_p
70
Added:
(fun path ->
71
Added:
Lwt.bind (Resolvers.open_repository config path) @@ function
72
Added:
| Error _ -> Lwt.return (path, None)
73
Added:
| Ok repository ->
74
Added:
let* date = Resolvers.head_commit_date repository in
75
Added:
let* () = Resolvers.close_repository repository in
76
Added:
Lwt.return (path, date))
77
Added:
repo_paths
78
Added:
67
79
let root config _request =
68
80
match Resolvers.scan_project_root config with
69
81
| Ok nodes ->
70
82
let open Lwt.Syntax in
71
83
let repo_paths = collect_repo_paths nodes in
72
Removed:
let* dates =
73
Removed:
Lwt_list.map_p
74
Removed:
(fun path ->
75
Removed:
Lwt.bind (Resolvers.open_repository config path) @@ function
76
Removed:
| Error _ -> Lwt.return (path, None)
77
Removed:
| Ok repository ->
78
Removed:
let* date = Resolvers.head_commit_date repository in
79
Removed:
let* () = Resolvers.close_repository repository in
80
Removed:
Lwt.return (path, date))
81
Removed:
repo_paths
82
Removed:
in
84
Added:
let* dates = fetch_repo_dates config repo_paths in
83
85
let node_name = function
84
86
| Resolvers.Repo { repo_name; _ } -> repo_name
85
87
| Resolvers.Directory (dir_name, _) -> dir_name ^ "/"
@@ -290,17 +292,7 @@
290
292
| Ok nodes ->
291
293
let open Lwt.Syntax in
292
294
let repo_paths = collect_repo_paths ~prefix:subdir nodes in
293
Removed:
let* dates =
294
Removed:
Lwt_list.map_p
295
Removed:
(fun path ->
296
Removed:
Lwt.bind (Resolvers.open_repository config path) @@ function
297
Removed:
| Error _ -> Lwt.return (path, None)
298
Removed:
| Ok repository ->
299
Removed:
let* date = Resolvers.head_commit_date repository in
300
Removed:
let* () = Resolvers.close_repository repository in
301
Removed:
Lwt.return (path, date))
302
Removed:
repo_paths
303
Removed:
in
295
Added:
let* dates = fetch_repo_dates config repo_paths in
304
296
let readme = Resolvers.read_subdir_readme config subdir in
305
297
Views.root (site config) ~dates ~prefix:subdir ?readme nodes
306
298
| Error error -> error_response error