2016-11-03 16:44:09 +00:00
|
|
|
(** Simplified Async/Lwt like monad *)
|
|
|
|
|
|
|
|
type 'a t
|
|
|
|
|
|
|
|
val return : 'a -> 'a t
|
|
|
|
val (>>=) : 'a t -> ('a -> 'b t) -> 'b t
|
2016-12-02 13:54:32 +00:00
|
|
|
val (>>|) : 'a t -> ('a -> 'b) -> 'b t
|
|
|
|
|
|
|
|
val both : 'a t -> 'b t -> ('a * 'b) t
|
2016-11-03 16:44:09 +00:00
|
|
|
|
|
|
|
val all : 'a t list -> 'a list t
|
|
|
|
val all_unit : unit t list -> unit t
|
|
|
|
|
2016-12-02 13:54:32 +00:00
|
|
|
(** [run ?dir ?stdout_to prog args] spawns a sub-process and wait for its termination *)
|
|
|
|
val run
|
|
|
|
: ?dir:string
|
|
|
|
-> ?stdout_to:string
|
|
|
|
-> ?env:string array
|
|
|
|
-> string
|
|
|
|
-> string list
|
|
|
|
-> unit t
|
|
|
|
|
|
|
|
(** Run a command and capture its output *)
|
|
|
|
val run_capture
|
|
|
|
: ?dir:string
|
|
|
|
-> ?env:string array
|
|
|
|
-> string
|
|
|
|
-> string list
|
|
|
|
-> string t
|
|
|
|
val run_capture_line
|
|
|
|
: ?dir:string
|
|
|
|
-> ?env:string array
|
|
|
|
-> string
|
|
|
|
-> string list
|
|
|
|
-> string t
|
|
|
|
val run_capture_lines
|
|
|
|
: ?dir:string
|
|
|
|
-> ?env:string array
|
|
|
|
-> string
|
|
|
|
-> string list
|
|
|
|
-> string list t
|
2016-11-03 16:44:09 +00:00
|
|
|
|
|
|
|
module Scheduler : sig
|
|
|
|
val go : 'a t -> 'a
|
|
|
|
end
|