1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
open Import
let term =
let+ builder = Common.Builder.term in
let common, config = Common.init builder in
Scheduler.go_with_rpc_server ~common ~config (fun () ->
Memo.run
@@
let open Memo.O in
let+ workspace = Workspace.workspace () in
let lock_dir_paths =
Pkg_common.Lock_dirs_arg.lock_dirs_of_workspace
Pkg_common.Lock_dirs_arg.all
workspace
in
let any_lockdir_exists =
List.exists lock_dir_paths ~f:(fun lock_dir_path ->
Path.exists (Path.source lock_dir_path))
in
(* CR-Leonidas-from-XIV: change this logic when we stop detecting lock
directories in the source tree *)
let enabled = any_lockdir_exists || workspace.config.pkg_enabled in
match enabled with
| true -> ()
| false -> exit 1)
;;
let info =
let doc =
"Check if the project indicates that dune's package management features should be \
enabled. Exits with 0 if package management is enabled and 1 otherwise."
in
Cmd.info "enabled" ~doc
;;
let command = Cmd.v info term
|