open Core
open Option.Let_syntax
let join_str_list ~sep = function
| [] -> ""
| s :: ss -> List.fold ss ~init:s ~f:(fun acc s -> acc ^ sep ^ s)
type cmd = {
args : string;
opts : unit -> string list;
next : (string -> (string, cmd) Either.t) option;
call : string list -> bool;
}
let set_opt_cmd opt setting =
{
args = "