package dkml-install
API and registry for Diskuv OCaml (DKML) installation components
Install
Dune Dependency
Authors
Maintainers
Sources
v0.1.0.tar.gz
md5=9c2fc122d49103ce9bf513fcc11b443d
sha512=c746d7a4482109c725bfe44542c146914add4d77e8e76556ce0de6e2567683a7ac7dc9909f1252aea7facbcf130153b8e752607a3c44e35b8cfd8ea5d99eb356
doc/src/dkml-install.api/dkml_install_api.ml.html
Source file dkml_install_api.ml
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
open Bos module Arg = Cmdliner.Arg module Term = Cmdliner.Term module Context = Types.Context module Forward_progress = Forward_progress module type Component_config = Dkml_install_api_intf.Component_config module type Component_config_defaultable = Dkml_install_api_intf.Component_config_defaultable let administrator = if Sys.win32 then "Administrator privileges" else "root permissions" module Default_component_config = struct let depends_on = [] let do_nothing_with_ctx_t _ctx = () let sdocs = Cmdliner.Manpage.s_common_options let install_user_subcommand ~component_name ~subcommand_name ~fl ~ctx_t = let doc = Fmt.str "Currently does nothing. Would install the component '%s' except the \ parts, if any, that need %s" component_name administrator in let cmd = Term. (const do_nothing_with_ctx_t $ ctx_t, info subcommand_name ~sdocs ~doc) in Forward_progress.return (cmd, fl) let uninstall_user_subcommand ~component_name ~subcommand_name ~fl ~ctx_t = let doc = Fmt.str "Currently does nothing. Would uninstall the component '%s' except the \ parts, if any, that need %s" component_name administrator in let cmd = Term. (const do_nothing_with_ctx_t $ ctx_t, info subcommand_name ~sdocs ~doc) in Forward_progress.return (cmd, fl) let needs_install_admin ~ctx:(_ : Context.t) = false let needs_uninstall_admin ~ctx:(_ : Context.t) = false let install_admin_subcommand ~component_name ~subcommand_name ~fl ~ctx_t = let doc = Fmt.str "Currently does nothing. Would install the parts of the component '%s' \ that need %s" component_name administrator in let cmd = Term. (const do_nothing_with_ctx_t $ ctx_t, info subcommand_name ~sdocs ~doc) in Forward_progress.return (cmd, fl) let uninstall_admin_subcommand ~component_name ~subcommand_name ~fl ~ctx_t = let doc = Fmt.str "Currently does nothing. Would uninstall the parts of the component \ '%s' that need %s" component_name administrator in let cmd = Term. (const do_nothing_with_ctx_t $ ctx_t, info subcommand_name ~sdocs ~doc) in Forward_progress.return (cmd, fl) let test () = () end module Log_config = struct include Log_config end let log_spawn_onerror_exit ~id ?conformant_subprocess_exitcodes cmd = Logs.info (fun m -> m "Running command: %a" Cmd.pp cmd); let fl = Forward_progress.stderr_fatallog in let open Astring in let sequence = let ( let* ) = Result.bind in let* env = OS.Env.current () in let new_env = let is_not_defined = match String.Map.find "OCAMLRUNPARAM" env with | None -> true | Some "" -> true | Some _ -> false in if is_not_defined then String.Map.add "OCAMLRUNPARAM" "b" env else env in OS.Cmd.run_status ~env:new_env cmd in match sequence with | Ok (`Exited 0) -> Logs.info (fun m -> m "%a ran successfully" Fmt.(option string) (Cmd.line_tool cmd)); () | Ok (`Exited spawned_exitcode) -> let adjective, exitcode = if conformant_subprocess_exitcodes = Some false then ("", Forward_progress.Exit_code.Exit_transient_failure) else ( "conformant ", List.fold_left (fun acc ec -> if spawned_exitcode = Forward_progress.Exit_code.to_int_exitcode ec then ec else acc) Forward_progress.Exit_code.Exit_transient_failure Forward_progress.Exit_code.values ) in fl ~id (Fmt.str "%s\n\n\ Root cause: @[The %scommand had exit code %d:@ %a@]\n\n\ >>> %s <<<" (Forward_progress.Exit_code.to_short_sentence exitcode) adjective spawned_exitcode Cmd.pp cmd (Forward_progress.Exit_code.to_short_sentence exitcode)); exit (Forward_progress.Exit_code.to_int_exitcode exitcode) | Ok (`Signaled c) -> fl ~id (Fmt.str "The command@ %a@ terminated from a signal %d" Cmd.pp cmd c); exit (Forward_progress.Exit_code.to_int_exitcode Exit_transient_failure) | Error rmsg -> fl ~id (Fmt.str "The command@ %a@ could not be run due to: %a" Cmd.pp cmd Rresult.R.pp_msg rmsg); exit (Forward_progress.Exit_code.to_int_exitcode Exit_transient_failure)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>