sig
val init : unit -> unit
val toggle_verbose : unit -> unit
type +'a menu_item
val menu_item :
?char:char -> ?log:SmartPrint.t -> 'a -> 'a Ketrew.Interaction.menu_item
val menu :
?max_per_page:int ->
?always_there:'a Ketrew.Interaction.menu_item list ->
sentence:SmartPrint.t ->
'a Ketrew.Interaction.menu_item list ->
('a, [> `Failure of string ]) Unix_io.t
val open_in_dollar_editor : string -> (unit, 'a) Unix_io.Deferred_result.t
val view_in_dollar_editor :
?extension:string ->
string ->
(unit, [> `IO of [> `Write_file_exn of string * exn ] ])
Unix_io.Deferred_result.t
val ask_for_edition :
?extension:string ->
string ->
(string,
[> `IO of
[> `Read_file_exn of Unix_io.IO.path * exn
| `Write_file_exn of Unix_io.IO.path * exn ] ])
Unix_io.Deferred_result.t
val get_key : unit -> (char, [> `Failure of string ]) Unix_io.t
val build_sublist_of_targets :
client:Ketrew.Client.t ->
list_name:string ->
all_log:SmartPrint.t ->
go_verb:SmartPrint.t ->
filter:(Ketrew_pure.Target.t -> bool) ->
([> `Cancel | `Go of string list ],
[> `Client of Ketrew.Client.Error.t
| `Database of Trakeva.Error.t
| `Database_unavailable of string
| `Failure of string
| `Fetching_node of Persistent_data.Error.fetching_node
| `IO of
[> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]
| `System of [> `File_info of string ] * [> `Exn of exn ]
| `Target of [> `Deserilization of string ] ])
Unix_io.t
val make_target_menu :
targets:Ketrew_pure.Target.t list ->
?filter_target:(Ketrew_pure.Target.t -> bool) ->
unit -> [> `Go of string ] Ketrew.Interaction.menu_item list
val run_with_quit_key :
< start : (unit, [> `Failure of string ] as 'start_error)
Unix_io.Deferred_result.t;
stop : unit > ->
(unit, 'start_error) Unix_io.Deferred_result.t
val read_password_exn : unit -> string
end