module OpamProcess:sig..end
type 
val command : ?env:string array ->
       ?verbose:bool ->
       ?name:string ->
       ?metadata:(string * string) list ->
       ?dir:string ->
       ?allow_stdin:bool ->
       ?text:string -> string -> string list -> command
val string_of_command : command -> string
val text_of_command : command -> string option
val is_verbose_command : command -> bool
val make_command_text : ?color:OpamGlobals.text_style ->
       string -> ?args:string list -> string -> stringtype |    | p_name :  | (* | 
Command name | *) | 
|    | p_args :  | (* | 
Command args | *) | 
|    | p_pid :  | (* | 
Process PID | *) | 
|    | p_cwd :  | (* | 
Process initial working directory | *) | 
|    | p_time :  | (* | 
Process start time | *) | 
|    | p_stdout :  | (* | 
stdout dump file | *) | 
|    | p_stderr :  | (* | 
stderr dump file | *) | 
|    | p_env :  | (* | 
dump environment variables | *) | 
|    | p_info :  | (* | 
dump process info | *) | 
|    | p_metadata :  | (* | 
Metadata associated to the process | *) | 
|    | p_verbose :  | (* | 
whether output of the process should be displayed | *) | 
type |    | r_code :  | (* | 
Process exit code, or 256 on error | *) | 
|    | r_signal :  | (* | 
Signal received if the processed was killed | *) | 
|    | r_duration :  | (* | 
Process duration | *) | 
|    | r_info :  | (* | 
Process info | *) | 
|    | r_stdout :  | (* | 
Content of stdout dump file | *) | 
|    | r_stderr :  | (* | 
Content of stderr dump file | *) | 
|    | r_cleanup :  | (* | 
List of files to clean-up | *) | 
val run : command -> resultrun command synchronously call the command command.cmd with
    arguments command.args. It waits until the process is finished. The files
    name.info, name.env, name.out and name.err, with
    name = command.cmd_name are
    created, and contain the process main description, the environment
    variables, the standard output and the standard error.
    Don't forget to call cleanup result afterwardsval run_background : command -> trun, but doesn't wait. Use wait_one to wait and collect
    results;
    Don't forget to call cleanup result afterwardsval dry_run_background : command -> trun_background, except that no process is created, and a dummy
    process (suitable for dry_wait_one) is returned.val wait : t -> resultwait p waits for the processus p to end and returns its results. Be
    careful to handle Sys.Breakval dontwait : t -> result optionwait, but returns None immediately if the process hasn't endedval wait_one : t list -> t * resultval dry_wait_one : t list -> t * resultwait_one for simulations, to be used with
    dry_run_backgroundval interrupt : t -> unitval is_success : result -> boolval is_failure : result -> boolval cleanup : ?force:bool -> result -> unitval read_lines : string -> string listval string_of_result : ?color:OpamGlobals.text_style -> result -> stringmodule Job:sig..end
type'ajob ='a Job.Op.job