From 1e3fcf984f1124004734e63b008922c9d960e2d8 Mon Sep 17 00:00:00 2001 From: Robur Date: Wed, 30 Jun 2021 14:10:02 +0000 Subject: [PATCH] Allow README.md being present anywhere The one in root takes precedence, but opam-installer doesn't really want to install things into %{prefix}%. --- bin/migrations/m20210630.ml | 13 ++++++++++--- lib/model.ml | 12 +++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/bin/migrations/m20210630.ml b/bin/migrations/m20210630.ml index b0ad15f..d193fa2 100644 --- a/bin/migrations/m20210630.ml +++ b/bin/migrations/m20210630.ml @@ -71,9 +71,16 @@ let migrate datadir (module Db : Caqti_blocking.CONNECTION) = Ok ((fpath, data) :: acc)) (Ok []) artifacts >>= fun files -> - (match List.find_opt (fun (p, _) -> Fpath.(equal (v "README.md") p)) files with - | None -> Ok () - | Some (_, data) -> Db.exec insert_job_tag (readme_id, data, job))) + let readme = + List.find_opt (fun (p, _) -> Fpath.(equal (v "README.md") p)) files + in + let readme_anywhere = + List.find_opt (fun (p, _) -> String.equal "README.md" (Fpath.basename p)) files + in + (match readme, readme_anywhere with + | None, None -> Ok () + | Some (_, data), _ | None, Some (_, data) -> + Db.exec insert_job_tag (readme_id, data, job))) jobs >>= fun () -> Db.exec (Grej.set_version new_version) () diff --git a/lib/model.ml b/lib/model.ml index b2952f9..f108465 100644 --- a/lib/model.ml +++ b/lib/model.ml @@ -294,9 +294,15 @@ let add_build (match snd sec_syn with | _, None -> Lwt_result.return () | _, Some descr_v -> add_or_update descr_id descr_v) >>= fun () -> - (match List.find_opt (fun (p, _) -> Fpath.(equal (v "README.md") p)) raw_artifacts with - | None -> Lwt_result.return () - | Some (_, data) -> add_or_update readme_id data) >>= fun () -> + (let readme = + List.find_opt (fun (p, _) -> Fpath.(equal (v "README.md") p)) raw_artifacts + in + let readme_anywhere = + List.find_opt (fun (p, _) -> String.equal "README.md" (Fpath.basename p)) raw_artifacts + in + match readme, readme_anywhere with + | None, None -> Lwt_result.return () + | Some (_, data), _ | None, Some (_, data) -> add_or_update readme_id data) >>= fun () -> List.fold_left (fun r file -> r >>= fun () ->