Library
Module
Module type
Parameter
Class
Class type
Inquire is a high-level library to create interactive command line interfaces.
module Style : sig ... end
Module to customize Inquire prompts.
val confirm :
?default:bool ->
?auto_enter:bool ->
?style:Style.t ->
string ->
bool
Prompt the user to answer the given message with "y" or "n".
Examples
Inquire.confirm "Are you sure?" ~default:true |> fun choice ->
if choice then print_endline "Yes!" else print_endline "No!"
val password :
?validate:(string -> (string, string) result) ->
?default:string ->
?style:Style.t ->
string ->
string
Prompt the user to enter a password that will be hidden.
The password can take any value, except the empty string.
On Unix, this works by setting the echo mode of the terminal to off.
On Windows, we print "\x1b8m" before prompting the password and "\x1b[0m"
after.
{4 Examples}
{[ Inquire.password "Enter your password:" |> fun password -> print_endline
"Your new password is: %S" password ]}
val input :
?validate:(string -> (string, string) result) ->
?default:string ->
?style:Style.t ->
string ->
string
Prompt the user to input a string.
The string can take any value, except the empty string.
Examples
Inquire.input "Enter a value:" |> fun value ->
print_endline "You entered: %S" value
val raw_select :
?default:int ->
?style:Style.t ->
options:string list ->
string ->
string
Prompt the user to chose a value from the given options. The options will be listed with an index prefixed and the users will have to enter the index of their choice.
Note that raw_select
does not support more than 9 options. If you need more options, please use select
instead.
Examples
let movies =
[ "Star Wars: The Rise of Skywalker"
; "Solo: A Star Wars Story"
; "Star Wars: The Last Jedi"
; "Rogue One: A Star Wars Story"
; "Star Wars: The Force Awakens"
]
in
Inquire.raw_select "What's your favorite movie?" ~options:movies
|> fun movie -> print_endline "Indeed, %S is a great movie!" movie
val select :
?default:int ->
?style:Style.t ->
options:string list ->
string ->
string
Prompt the user to chose a value from the given options. The prompt is interactive and users can select their choice with directional keys.
Examples
let movies =
[ "Star Wars: The Rise of Skywalker"
; "Solo: A Star Wars Story"
; "Star Wars: The Last Jedi"
; "Rogue One: A Star Wars Story"
; "Star Wars: The Force Awakens"
]
in
Inquire.select "What's your favorite movie?" ~options:movies
|> fun movie -> print_endline "Indeed, %S is a great movie!" movie