package spin

  1. Overview
  2. Docs

Module InquireSource

Inquire is a high-level library to create interactive command line interfaces.

Sourceexception Interrupted_by_user
Sourcemodule Style : sig ... end

Module to customize Inquire prompts.

Sourceval 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!"
Sourceval 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 ]}

Sourceval 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
Sourceval 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
Sourceval 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
Sourceval set_exit_on_user_interrupt : bool -> unit

Configure the behavior on user interruptions during a prompt.

If exit_on_user_interrupt is true, the program will exit with status code 130. If it is false, an Interrupted_by_user exception is raised.

The default behavior is to exit on user interruptions.

OCaml

Innovation. Community. Security.