sig
type 'a t = 'a Language.t
val string : string -> string EDSL.t
val int : int -> int EDSL.t
val bool : bool -> bool EDSL.t
val call : string EDSL.t list -> unit EDSL.t
val exec : string list -> unit EDSL.t
val getenv : string EDSL.t -> string EDSL.t
val setenv : var:string EDSL.t -> string EDSL.t -> unit EDSL.t
val ( &&& ) : bool EDSL.t -> bool EDSL.t -> bool EDSL.t
val ( ||| ) : bool EDSL.t -> bool EDSL.t -> bool EDSL.t
val not : bool EDSL.t -> bool EDSL.t
val ( =$= ) : string EDSL.t -> string EDSL.t -> bool EDSL.t
val ( <$> ) : string EDSL.t -> string EDSL.t -> bool EDSL.t
val returns : 'a EDSL.t -> value:int -> bool EDSL.t
module Bool :
sig
val to_string : bool EDSL.t -> string EDSL.t
val of_string : string EDSL.t -> bool EDSL.t
end
val succeeds : 'a EDSL.t -> bool EDSL.t
val file_exists : string EDSL.t -> bool EDSL.t
module Integer :
sig
val to_string : int EDSL.t -> string EDSL.t
val of_string : string EDSL.t -> int EDSL.t
val bin_op :
int EDSL.t ->
[ `Div | `Minus | `Mod | `Mult | `Plus ] -> int EDSL.t -> int EDSL.t
val add : int EDSL.t -> int EDSL.t -> int EDSL.t
val ( + ) : int EDSL.t -> int EDSL.t -> int EDSL.t
val sub : int EDSL.t -> int EDSL.t -> int EDSL.t
val ( - ) : int EDSL.t -> int EDSL.t -> int EDSL.t
val mul : int EDSL.t -> int EDSL.t -> int EDSL.t
val ( * ) : int EDSL.t -> int EDSL.t -> int EDSL.t
val div : int EDSL.t -> int EDSL.t -> int EDSL.t
val ( / ) : int EDSL.t -> int EDSL.t -> int EDSL.t
val modulo : int EDSL.t -> int EDSL.t -> int EDSL.t
val ( mod ) : int EDSL.t -> int EDSL.t -> int EDSL.t
val cmp :
[ `Eq | `Ge | `Gt | `Le | `Lt | `Ne ] ->
int EDSL.t -> int EDSL.t -> bool EDSL.t
val eq : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ne : int EDSL.t -> int EDSL.t -> bool EDSL.t
val lt : int EDSL.t -> int EDSL.t -> bool EDSL.t
val le : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ge : int EDSL.t -> int EDSL.t -> bool EDSL.t
val gt : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ( = ) : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ( <> ) : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ( < ) : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ( <= ) : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ( >= ) : int EDSL.t -> int EDSL.t -> bool EDSL.t
val ( > ) : int EDSL.t -> int EDSL.t -> bool EDSL.t
end
val list : 'a EDSL.t list -> 'a list EDSL.t
val list_append : 'a list EDSL.t -> 'a list EDSL.t -> 'a list EDSL.t
val list_iter :
'a list EDSL.t -> f:((unit -> 'a EDSL.t) -> unit EDSL.t) -> unit EDSL.t
val list_to_string :
'a list EDSL.t -> f:('a EDSL.t -> string EDSL.t) -> string EDSL.t
val list_of_string :
string EDSL.t -> f:(string EDSL.t -> 'a EDSL.t) -> 'a list EDSL.t
val output_as_string : unit EDSL.t -> string EDSL.t
val feed : string:string EDSL.t -> unit EDSL.t -> unit EDSL.t
val ( >> ) : string EDSL.t -> unit EDSL.t -> unit EDSL.t
val string_concat : string EDSL.t list -> string EDSL.t
val string_concat_list : string list EDSL.t -> string EDSL.t
val nop : unit EDSL.t
val if_then_else : bool EDSL.t -> unit EDSL.t -> unit EDSL.t -> unit EDSL.t
val if_then : bool EDSL.t -> unit EDSL.t -> unit EDSL.t
val seq : unit EDSL.t list -> unit EDSL.t
val loop_while : bool EDSL.t -> body:unit EDSL.t -> unit EDSL.t
val if_seq :
t:unit EDSL.t list -> ?e:unit EDSL.t list -> bool EDSL.t -> unit EDSL.t
val switch :
[ `Case of bool EDSL.t * unit EDSL.t | `Default of unit EDSL.t ] list ->
unit EDSL.t
val case :
bool EDSL.t ->
unit EDSL.t list -> [> `Case of bool EDSL.t * unit EDSL.t ]
val default : unit EDSL.t list -> [> `Default of unit EDSL.t ]
val make_switch :
(bool Language.t * unit Language.t) list ->
default:unit Language.t -> unit Language.t
type fd_redirection
val to_fd : int EDSL.t -> int EDSL.t -> EDSL.fd_redirection
val to_file : int EDSL.t -> string EDSL.t -> EDSL.fd_redirection
val with_redirections :
unit EDSL.t -> EDSL.fd_redirection list -> unit EDSL.t
val write_output :
?stdout:string EDSL.t ->
?stderr:string EDSL.t ->
?return_value:string EDSL.t -> unit EDSL.t -> unit EDSL.t
val write_stdout : path:string EDSL.t -> unit EDSL.t -> unit EDSL.t
val pipe : unit EDSL.t list -> unit EDSL.t
val ( ||> ) : unit EDSL.t -> unit EDSL.t -> unit EDSL.t
val printf : string EDSL.t -> string EDSL.t list -> unit EDSL.t
val eprintf : string EDSL.t -> string EDSL.t list -> unit EDSL.t
val fail : unit EDSL.t
val with_signal :
?signal_name:string ->
catch:unit EDSL.t -> (unit EDSL.t -> unit EDSL.t) -> unit EDSL.t
val with_failwith :
((message:string Language.t -> return:int Language.t -> unit Language.t) ->
unit Language.t) ->
unit Language.t
type file =
< append : string EDSL.t -> unit EDSL.t; delete : unit EDSL.t;
get : string EDSL.t; path : string EDSL.t;
set : string EDSL.t -> unit EDSL.t >
val tmp_file : ?tmp_dir:string EDSL.t -> string -> EDSL.file
module Command_line :
sig
type 'a cli_option = {
switches : string list;
doc : string;
default : 'a;
}
type _ option_spec =
Opt_flag :
bool EDSL.t EDSL.Command_line.cli_option -> bool EDSL.t
EDSL.Command_line.option_spec
| Opt_string :
string EDSL.t EDSL.Command_line.cli_option -> string EDSL.t
EDSL.Command_line.option_spec
and (_, _) cli_options =
Opt_end : string -> ('a, 'a) EDSL.Command_line.cli_options
| Opt_cons : 'c EDSL.Command_line.option_spec *
('a, 'b) EDSL.Command_line.cli_options -> ('c -> 'a, 'b)
EDSL.Command_line.cli_options
module Arg :
sig
val string :
?default:string EDSL.t ->
doc:string ->
string list -> string EDSL.t EDSL.Command_line.option_spec
val flag :
?default:bool EDSL.t ->
doc:string ->
string list -> bool EDSL.t EDSL.Command_line.option_spec
val ( & ) :
'a EDSL.Command_line.option_spec ->
('b, 'c) EDSL.Command_line.cli_options ->
('a -> 'b, 'c) EDSL.Command_line.cli_options
val usage : string -> ('a, 'a) EDSL.Command_line.cli_options
end
val parse :
('a, unit EDSL.t) EDSL.Command_line.cli_options ->
(anon:string list EDSL.t -> 'a) -> unit EDSL.t
end
module Magic : sig val unit : string -> unit EDSL.t end
end