Reynir Björnsson
4461a91f87
The tuple type constructors are renamed from tupN to tN. Also, except for migrations, use the wider tuple types (up to 12 since caqti.2.1.0).
21 lines
1.2 KiB
OCaml
21 lines
1.2 KiB
OCaml
open Grej.Infix
|
|
|
|
let all_build_artifacts_like_hashes : (unit, [`build_artifact] Builder_db.Rep.id * Fpath.t, [ `Zero | `One | `Many ]) Caqti_request.t =
|
|
Caqti_type.unit ->*
|
|
Caqti_type.t2 (Builder_db.Rep.id `build_artifact) Builder_db.Rep.fpath @@
|
|
"SELECT id, localpath FROM build_artifact WHERE filepath LIKE '%.build-hashes'"
|
|
|
|
let all_build_artifacts_like_readme : (unit, [`build_artifact] Builder_db.Rep.id * Fpath.t, [ `Zero | `One | `Many ]) Caqti_request.t =
|
|
Caqti_type.unit ->*
|
|
Caqti_type.t2 (Builder_db.Rep.id `build_artifact) Builder_db.Rep.fpath @@
|
|
"SELECT id, localpath FROM build_artifact WHERE filepath LIKE '%README.md'"
|
|
|
|
let fixup datadir (module Db : Caqti_blocking.CONNECTION) =
|
|
Grej.check_version ~user_version:13L (module Db) >>= fun () ->
|
|
Db.rev_collect_list all_build_artifacts_like_hashes () >>= fun build_artifacts_build_hashes ->
|
|
Db.rev_collect_list all_build_artifacts_like_readme () >>= fun build_artifacts_readme ->
|
|
Grej.list_iter_result
|
|
(fun (artifact_id, artifact_lpath) ->
|
|
Bos.OS.File.delete (Fpath.append datadir artifact_lpath) >>= fun () ->
|
|
Db.exec Builder_db.Build_artifact.remove artifact_id)
|
|
(build_artifacts_build_hashes @ build_artifacts_readme)
|