this repo has no description
0
fork

Configure Feed

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

at main 40 lines 1.5 kB view raw
1(** rdeps command: find reverse dependencies *) 2 3open Cmdliner 4 5let run profile_name profile_dir package = 6 match Common.load_profile ~profile_dir ~name:profile_name with 7 | Error (`Msg e) -> Printf.eprintf "Error: %s\n%!" e; 1 8 | Ok (profile, _paths) -> 9 let _git_packages, repos_with_shas, _opam_env = 10 Common.setup_solver profile.opam_repositories in 11 let pkg = OpamPackage.of_string package in 12 let results = Day11_solver_pool.Solver_pool.solve_many ~np:1 13 ~repos:repos_with_shas [ pkg ] in 14 match List.assoc_opt pkg results with 15 | Some (Error (diag, _examined)) -> 16 Printf.eprintf "Cannot solve %s: %s\n" package diag; 1 17 | None -> 18 Printf.eprintf "No result for %s\n" package; 1 19 | Some (Ok result) -> 20 let rdeps = Day11_solution.Rdeps.find 21 [ result.Day11_solution.Solve_result.build_deps ] pkg in 22 if OpamPackage.Set.is_empty rdeps then 23 Printf.printf "No reverse dependencies for %s\n" package 24 else begin 25 Printf.printf "Reverse dependencies of %s:\n" package; 26 OpamPackage.Set.iter (fun p -> 27 Printf.printf " %s\n" (OpamPackage.to_string p) 28 ) rdeps 29 end; 30 0 31 32let package_term = 33 Arg.(required & pos 0 (some string) None & info [] ~docv:"PACKAGE" 34 ~doc:"Package to find rdeps for") 35 36let cmd = 37 let info = Cmd.info "rdeps" ~doc:"Find reverse dependencies" in 38 let term = Term.(const run $ Common.profile_term $ Common.profile_dir_term 39 $ package_term) in 40 Cmd.v info term