module Job: sig
.. end
Higher-level interface to allow parallelism
module Op: sig
.. end
Open type and add combinators.
val run : 'a Op.job -> 'a
Sequential run of a job
val dry_run : 'a Op.job -> 'a
Same as run
but doesn't actually run any shell command,
and feed a dummy result to the cont.
val catch : (exn -> 'a Op.job) ->
'a Op.job -> 'a Op.job
Catch exceptions raised within a job
val ignore_errors : default:'a ->
?message:string -> 'a Op.job -> 'a Op.job
Ignore all non-fatal exceptions raised by job and return default
val finally : (unit -> unit) -> 'a Op.job -> 'a Op.job
Register an exception-safe finaliser in a job.
finally job fin
is equivalent to
catch job (fun e -> fin (); raise e) @@+ fun r -> fin (); Done r
val of_list : ?keep_going:bool ->
OpamProcess.command list ->
(OpamProcess.command * OpamProcess.result) option Op.job
Converts a list of commands into a job that returns None on success, or
the first failed command and its result.
Unless keep_going
is true, stops on first error.
val with_text : string -> 'a Op.job -> 'a Op.job
Sets and overrides text of the underlying commands