Monorepo management for opam overlays
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

monopam verse: hoist inner runs to reduce nesting (E010)

cherrypick_cmd, status_cmd, members_cmd had their [run] / [_inner]
helpers buried inside the [let cmd = ...] body, inflating measured
nesting depth. Move them to top-level [cherrypick_run / status_run /
members_run / fork_inner] so each command body is shallow. No
behaviour change.

+74 -63
+74 -63
bin/cmd_verse.ml
··· 158 158 159 159 (* verse cherry-pick - cherry-pick specific commit. Hyphenated to match 160 160 git's own vocabulary. *) 161 + 162 + let cherrypick_inner ~sw ~proc ~fs ~config ~verse_config ~sha ~refresh = 163 + match 164 + Monopam.cherrypick ~sw ~proc ~fs ~config ~verse_config ~sha ~refresh () 165 + with 166 + | Ok result -> 167 + Fmt.pr "%a" Monopam.pp_cherrypick_result result; 168 + Fmt.pr "Run $(b,monopam push) to publish this change.@."; 169 + `Ok () 170 + | Error e -> Common.fail_ctx e 171 + 172 + let cherrypick_run sha refresh () = 173 + Eio_main.run @@ fun env -> 174 + Common.with_config env @@ fun config -> 175 + Common.with_verse_config env @@ fun verse_config -> 176 + let fs = Eio.Stdenv.fs env in 177 + let proc = Eio.Stdenv.process_mgr env in 178 + Eio.Switch.run @@ fun sw -> 179 + cherrypick_inner ~sw ~proc ~fs ~config ~verse_config ~sha ~refresh 180 + 161 181 let cherrypick_cmd = 162 182 let doc = "Cherry-pick a specific commit from a verse member" in 163 183 let man = ··· 185 205 let doc = "Force fresh fetches from all remotes." in 186 206 Arg.(value & flag & info [ "refresh"; "r" ] ~doc) 187 207 in 188 - let cherrypick_inner ~sw ~proc ~fs ~config ~verse_config ~sha ~refresh = 189 - match 190 - Monopam.cherrypick ~sw ~proc ~fs ~config ~verse_config ~sha ~refresh () 191 - with 192 - | Ok result -> 193 - Fmt.pr "%a" Monopam.pp_cherrypick_result result; 194 - Fmt.pr "Run $(b,monopam push) to publish this change.@."; 195 - `Ok () 196 - | Error e -> Common.fail_ctx e 197 - in 198 - let run sha refresh () = 199 - Eio_main.run @@ fun env -> 200 - Common.with_config env @@ fun config -> 201 - Common.with_verse_config env @@ fun verse_config -> 202 - let fs = Eio.Stdenv.fs env in 203 - let proc = Eio.Stdenv.process_mgr env in 204 - Eio.Switch.run @@ fun sw -> 205 - cherrypick_inner ~sw ~proc ~fs ~config ~verse_config ~sha ~refresh 206 - in 207 208 Cmd.v info 208 - Term.(ret (const run $ sha_arg $ refresh_arg $ Common.logging_term)) 209 + Term.( 210 + ret (const cherrypick_run $ sha_arg $ refresh_arg $ Common.logging_term)) 209 211 210 212 (* verse status - show verse member status *) 213 + 214 + let status_inner ~sw ~proc ~fs ~config ~show_all = 215 + match Monopam.Verse_config.load ~fs () with 216 + | Error _ -> 217 + Fmt.epr "No verse configuration found. Run: monopam init@."; 218 + `Error (false, "no verse config") 219 + | Ok verse_config -> 220 + let forks = 221 + Monopam.Forks.compute ~sw ~proc ~fs ~verse_config ~monopam_config:config 222 + () 223 + in 224 + if forks.repos <> [] then 225 + Fmt.pr "%a" (Monopam.Forks.pp_summary' ~show_all) forks; 226 + `Ok () 227 + 228 + let status_run show_all () = 229 + Eio_main.run @@ fun env -> 230 + Common.with_config env @@ fun config -> 231 + let fs = Eio.Stdenv.fs env in 232 + let proc = Eio.Stdenv.process_mgr env in 233 + Eio.Switch.run @@ fun sw -> status_inner ~sw ~proc ~fs ~config ~show_all 234 + 211 235 let status_cmd = 212 236 let doc = "Show status of verse members" in 213 237 let man = ··· 231 255 let doc = "Show all repos including those not in your workspace." in 232 256 Arg.(value & flag & info [ "all"; "a" ] ~doc) 233 257 in 234 - let run show_all () = 235 - Eio_main.run @@ fun env -> 236 - Common.with_config env @@ fun config -> 237 - let fs = Eio.Stdenv.fs env in 238 - let proc = Eio.Stdenv.process_mgr env in 239 - Eio.Switch.run @@ fun sw -> 240 - match Monopam.Verse_config.load ~fs () with 241 - | Error _ -> 242 - Fmt.epr "No verse configuration found. Run: monopam init@."; 243 - `Error (false, "no verse config") 244 - | Ok verse_config -> 245 - let forks = 246 - Monopam.Forks.compute ~sw ~proc ~fs ~verse_config 247 - ~monopam_config:config () 248 - in 249 - if forks.repos <> [] then 250 - Fmt.pr "%a" (Monopam.Forks.pp_summary' ~show_all) forks; 251 - `Ok () 252 - in 253 - Cmd.v info Term.(ret (const run $ all_arg $ Common.logging_term)) 258 + Cmd.v info Term.(ret (const status_run $ all_arg $ Common.logging_term)) 254 259 255 260 (* verse members - list registry members *) 261 + 262 + let members_inner ~sw ~proc ~fs ~config = 263 + match Monopam.Verse.members ~sw ~proc ~fs ~config () with 264 + | Ok members -> 265 + Fmt.pr "@[<v>%a@]@." 266 + Fmt.(list ~sep:cut Monopam.Verse_registry.pp_member) 267 + members; 268 + `Ok () 269 + | Error e -> 270 + let msg = Fmt.str "%a" Monopam.Verse.pp_error_with_hint e in 271 + Common.fail_ctx (Monopam.Ctx.err msg) 272 + 273 + let members_run () = 274 + Eio_main.run @@ fun env -> 275 + Common.with_verse_config env @@ fun config -> 276 + let fs = Eio.Stdenv.fs env in 277 + let proc = Eio.Stdenv.process_mgr env in 278 + Eio.Switch.run @@ fun sw -> members_inner ~sw ~proc ~fs ~config 279 + 256 280 let members_cmd = 257 281 let doc = "List registry members" in 258 282 let man = ··· 265 289 ] 266 290 in 267 291 let info = Cmd.info "members" ~doc ~man in 268 - let run () = 269 - Eio_main.run @@ fun env -> 270 - Common.with_verse_config env @@ fun config -> 271 - let fs = Eio.Stdenv.fs env in 272 - let proc = Eio.Stdenv.process_mgr env in 273 - Eio.Switch.run @@ fun sw -> 274 - match Monopam.Verse.members ~sw ~proc ~fs ~config () with 275 - | Ok members -> 276 - Fmt.pr "@[<v>%a@]@." 277 - Fmt.(list ~sep:cut Monopam.Verse_registry.pp_member) 278 - members; 279 - `Ok () 280 - | Error e -> 281 - let msg = Fmt.str "%a" Monopam.Verse.pp_error_with_hint e in 282 - Common.fail_ctx (Monopam.Ctx.err msg) 283 - in 284 - Cmd.v info Term.(ret (const run $ Common.logging_term)) 292 + Cmd.v info Term.(ret (const members_run $ Common.logging_term)) 285 293 286 294 (* verse fork - fork a package *) 287 295 let fork_man = ··· 355 363 Fmt.pr " 2. monopam pull@." 356 364 end 357 365 358 - let fork_run package handle fork_url dry_run () = 359 - Eio_main.run @@ fun env -> 360 - Common.with_verse_config env @@ fun config -> 361 - let fs = Eio.Stdenv.fs env in 362 - let proc = Eio.Stdenv.process_mgr env in 363 - Eio.Switch.run @@ fun sw -> 366 + let fork_inner ~sw ~proc ~fs ~config ~handle ~package ~fork_url ~dry_run = 364 367 match 365 368 Monopam.Verse.fork ~sw ~proc ~fs ~config ~handle ~package ~fork_url ~dry_run 366 369 () ··· 371 374 | Error e -> 372 375 let msg = Fmt.str "%a" Monopam.Verse.pp_error_with_hint e in 373 376 Common.fail_ctx (Monopam.Ctx.err msg) 377 + 378 + let fork_run package handle fork_url dry_run () = 379 + Eio_main.run @@ fun env -> 380 + Common.with_verse_config env @@ fun config -> 381 + let fs = Eio.Stdenv.fs env in 382 + let proc = Eio.Stdenv.process_mgr env in 383 + Eio.Switch.run @@ fun sw -> 384 + fork_inner ~sw ~proc ~fs ~config ~handle ~package ~fork_url ~dry_run 374 385 375 386 let fork_cmd = 376 387 let doc = "Fork a package from a verse member" in