Compare commits

..

No commits in common. "ddb0f610e4db3acf6eec08a07265e87511259322" and "6447339f64291df742e3e73798e0cb9f687f4be0" have entirely different histories.

View file

@ -640,32 +640,22 @@ module Make
let entries_of_git ~mtime store repo urls = let entries_of_git ~mtime store repo urls =
let entries = Git.contents store in let entries = Git.contents store in
let to_entry path = let to_entry path =
match Mirage_kv.Key.segments path with Store.get store path >|= function
(* from opam source code, src/repository/opamHTTP.ml: | Ok data ->
include only three top-level dirs/files: packages, version, repo *) let data =
| "packages" :: _ if Mirage_kv.Key.(equal path (v "repo"))
| "version" :: _ then repo else data
| "repo" :: _ -> in
begin let file_mode = 0o644
Store.get store path >|= function and mod_time = Int64.of_int mtime
| Ok data -> and user_id = 0
let data = and group_id = 0
if Mirage_kv.Key.(equal path (v "repo")) and size = String.length data in
then repo else data let hdr = Tar.Header.make ~file_mode ~mod_time ~user_id ~group_id
in (Mirage_kv.Key.to_string path) (Int64.of_int size) in
let file_mode = 0o644 urls := Git.find_urls !urls path data;
and mod_time = Int64.of_int mtime Some (Some Tar.Header.Ustar, hdr, once data)
and user_id = 0 | Error _ -> None in
and group_id = 0
and size = String.length data in
let hdr = Tar.Header.make ~file_mode ~mod_time ~user_id ~group_id
(Mirage_kv.Key.to_string path) (Int64.of_int size) in
urls := Git.find_urls !urls path data;
Some (Some Tar.Header.Ustar, hdr, once data)
| Error _ -> None
end
| _ -> Lwt.return None
in
let entries = Lwt_stream.filter_map_s to_entry entries in let entries = Lwt_stream.filter_map_s to_entry entries in
Lwt.return begin fun () -> Tar.High (High.inj (Lwt_stream.get entries >|= Result.ok)) end Lwt.return begin fun () -> Tar.High (High.inj (Lwt_stream.get entries >|= Result.ok)) end