outil
Types
A positional command line argument.
pub type Argument {
BoolArgument(name: String)
FloatArgument(name: String)
IntArgument(name: String)
StringArgument(name: String)
}
Constructors
-
BoolArgument(name: String)
-
FloatArgument(name: String)
-
IntArgument(name: String)
-
StringArgument(name: String)
A command line interface to a run function.
pub type Command {
Command(
name: String,
description: String,
arguments: List(Argument),
options: List(Opt),
argv: List(String),
)
}
Constructors
-
Command( name: String, description: String, arguments: List(Argument), options: List(Opt), argv: List(String), )
The result of executing a command.
pub type CommandResult(a, b) =
Result(a, CommandReturn(b))
Non-normal return values from executing a command.
pub type CommandReturn(a) {
CommandLineError(reason: Reason, usage: String)
CommandError(a)
Help(usage: String)
}
Constructors
-
CommandLineError(reason: Reason, usage: String)
An error in parsing the command line.
-
CommandError(a)
An error in executing the command,
a
is your error value. -
Help(usage: String)
The user asked for help.
The type of continuation functions in building a command.
pub type Configure(a, b, c) =
fn(RunCommand(a, c), Command) -> b
A command line option/flag.
pub type Opt {
Opt(
long: String,
short: Option(String),
description: String,
value: OptValue,
)
}
Constructors
-
Opt( long: String, short: Option(String), description: String, value: OptValue, )
The type and default value of an option.
pub type OptValue {
BoolOpt
FloatOpt(default: Float)
IntOpt(default: Int)
StringOpt(default: String)
}
Constructors
-
BoolOpt
-
FloatOpt(default: Float)
-
IntOpt(default: Int)
-
StringOpt(default: String)
The type of functions that execute a command.
pub type RunCommand(a, b) =
fn(Command) -> CommandResult(a, b)
Functions
pub fn command(name: String, description: String, argv: List(
String,
), continue: fn(Command) -> a) -> a
Create a command with the given name and description, and pass it to the given continuation function for further configuration.
The command gets a default implementation that returns an error.
pub fn print_usage(return: CommandReturn(a)) -> Nil
Convenience function for handling the result of executing a command.
Print usage if there was a command line error or if the user asked for it.
Does nothing if the command returned an application error, assuming that the application will handle it.
pub fn print_usage_and_exit(return: CommandReturn(a)) -> Nil
Convenience function for handling the result of executing a command.
Print usage if there was a command line error or if the user asked for it.
Exit with 2 if there was a command line error, 1 if there was a command error, or 0 if the command was successful.