Class: CommandLineOptions
wayward/support/command_line_options.hpp
CommandLineOptions is a very simple command line option parser.
Example usage:
CommandLineOptions cmd;
cmd.description("Provide option 'foo'.");
cmd.option("--foo", "-f", []() { ... });
cmd.description("Set the number with --number=123 or -n 123.");
cmd.option("--number", "-n", [](int64_t) { ... });
cmd.description("Provide a string with --string=foo or -s foo");
cmd.option("--string", "-s", [](std::string) { ... });
cmd.usage();
cmd.parse(argc, argv);
CommandLineOptions recognizes the --help and -h options by default after the call to usage(), and displays all available options with the associated description (if any). The closures provided with the option are run when the option is encountered during parse.
Constructors
CommandLineOptions()
Empty CommandLineOptions.
Methods
program_name
Invoke: program_name(std::string)
Set the program name. Defaults to argv[0]. If a program name is provided manually, argv[0] is interpreted as an option instead of the binary path.
description
Invoke: description(std::string)
Set the description of the next option that is defined. Each successive call to description overwrites the previous value.
option
Invoke: option(long_form, short_form, callback) or option(long_form, callback)
callback is either an std::function<void()>, or an std::function<void(std::string)>, or an std::function<void(int64_t)>. If the callback takes no parameters, the option is assumed to not take a value argument. If the callback takes a string argument, the value argument is passed directly. If the callback takes an integer argument, the value argument is converted to an integer first.
usage
Invoke: usage(long_form, short_form) or usage(action, long_form, short_form)
Configures the "usage" display. By default, CommandLineOptions interprets the options --help and -h and calls display_usage_and_exit().
unrecognized
Invoke: unrecognized(callback)
callback is an std::function<void(std::string)>, and it will be invoked for each unrecognized option. By default, CommandLineOptions does nothing when encountering an unrecognized option.
display_usage
Invoke: display_usage()
Print usage text to std::cout.
display_usage_and_exit
Invoke: dispay_usage_and_exit()
Print usage text to std::cout and call std::exit(1).
parse
Invoke: parse(argc, argv)
Returns: std::vector<std::string> (a list of unrecognized command line options)
Parse argc arguments of argv and execute the relevant actions.