mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-04-29 12:13:52 +00:00
Adding example of completely custom help option
This commit is contained in:
parent
fc69345f2f
commit
b2376bd359
@ -20,5 +20,6 @@ add_cli_exe(groups groups.cpp)
|
||||
add_cli_exe(inter_argument_order inter_argument_order.cpp)
|
||||
add_cli_exe(prefix_command prefix_command.cpp)
|
||||
add_cli_exe(enum enum.cpp)
|
||||
add_cli_exe(modhelp modhelp.cpp)
|
||||
|
||||
add_subdirectory(subcom_in_files)
|
||||
|
31
examples/modhelp.cpp
Normal file
31
examples/modhelp.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
// Modify the help print so that argument values are accessible
|
||||
// Note that this will not shortcut `->required` and other similar options
|
||||
|
||||
#include "CLI/CLI.hpp"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
CLI::App test;
|
||||
|
||||
// Remove help flag because it shortcuts all processing
|
||||
test.set_help_flag();
|
||||
|
||||
// Add custom flag that activates help
|
||||
auto help = test.add_flag("-h,--help", "Request help");
|
||||
|
||||
std::string some_option;
|
||||
test.add_option("-a", some_option, "Some description");
|
||||
|
||||
try {
|
||||
test.parse(argc, argv);
|
||||
if(*help)
|
||||
throw CLI::CallForHelp();
|
||||
} catch (const CLI::Error &e) {
|
||||
std::cout << "Option string:" << some_option << std::endl;
|
||||
return test.exit(e);
|
||||
}
|
||||
|
||||
std::cout << "Option string:" << some_option << std::endl;
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user