Module Ketrew_pure.Monitored_script

module Monitored_script: sig .. end


Generate Shell scripts that “monitor” commands.

The goal of this module is to create shell scripts from a high-level representation. The scripts are “monitored” in the sense that code is added to log every returned value or failure in a parsable log file.
type t = {
   playground : Path.t;
   program : Program.t;
}
val to_yojson : t -> Yojson.Safe.json
val of_yojson : Yojson.Safe.json ->
t Ppx_deriving_yojson_runtime.error_or
The definition of a monitored script.
val create : playground:Path.t -> Program.t -> t
Create a new script, which will run the list of commands, and store state values in the playground directory.
val log_file : t -> Path.t
Path to the log file of the script.
val pid_file : t -> Path.t
Path to the “PID” file: where the script stores the PID of the process running the script, - pid will be the process id of the process group created by `setsid` (useful for killing the whole process tree).
val to_string : ?write_pid:bool -> t -> string
Render the monitored_script to a shell-script string; if write_pid is true (the default), the script writes the pid to pid_file t.
val parse_log : string ->
[ `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
Parse the log file of a monitored_script.