sig
val fail_fatal :
string -> ('b, [> `Fatal of string ]) Unix_io.Deferred_result.t
val out_file_path : playground:Ketrew_pure.Path.t -> Ketrew_pure.Path.t
val err_file_path : playground:Ketrew_pure.Path.t -> Ketrew_pure.Path.t
val script_path : playground:Ketrew_pure.Path.t -> Ketrew_pure.Path.t
val classify_and_transform_errors :
('a,
[< `Fatal of string
| `Host of
[ `Execution of
< host : string; message : string; stderr : string option;
stdout : string option >
| `Non_zero of string * int
| `Ssh_failure of
[ `Wrong_log of string
| `Wrong_status of Unix_process.Exit_code.t ] * string
| `System of [ `Sleep of float ] * [ `Exn of exn ]
| `Timeout of float
| `Unix_exec of string ]
| `IO of
[< `Exn of exn
| `File_exists of string
| `Read_file_exn of string * exn
| `Write_file_exn of string * exn
| `Wrong_path of string ]
| `System of
[< `Copy of string
| `File_info of string
| `File_tree of string
| `List_directory of string
| `Make_directory of string
| `Make_symlink of string * string
| `Move of string
| `Remove of string ] *
[< `Already_exists
| `Exn of exn
| `File_exists of string
| `File_not_found of string
| `IO of
[< `Exn of exn
| `File_exists of string
| `Read_file_exn of string * exn
| `Write_file_exn of string * exn
| `Wrong_path of string ]
| `Not_a_directory of string
| `Wrong_access_rights of int
| `Wrong_file_kind of string * Unix_io.System.file_info
| `Wrong_path of string ]
| `Timeout of 'b ])
Ketrew_pure.Internal_pervasives.Result.t ->
('a, [ `Fatal of string | `Recoverable of string ])
Unix_io.Deferred_result.t
val fresh_playground_or_fail :
Ketrew_pure.Host.t ->
(Ketrew_pure.Path.t, [> `Fatal of string ]) Unix_io.Deferred_result.t
val get_log_of_monitored_script :
host:Ketrew_pure.Host.t ->
script:Ketrew_pure.Monitored_script.t ->
([ `After of string * string * string
| `Before of string * string * string
| `Error of string list
| `Failure of string * string * string
| `Start of string
| `Success of string ] list option,
[> `Timeout of Ketrew_pure.Internal_pervasives.Time.t ])
Unix_io.Deferred_result.t
val get_pid_of_monitored_script :
host:Ketrew_pure.Host.t ->
script:Ketrew_pure.Monitored_script.t ->
(int option, [> `Timeout of Ketrew_pure.Internal_pervasives.Time.t ])
Unix_io.Deferred_result.t
val shell_command_output_or_log :
host:Ketrew_pure.Host.t ->
string ->
(string, Ketrew_pure.Internal_pervasives.Log.t) Unix_io.Deferred_result.t
end