mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-04-30 04:33:53 +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(inter_argument_order inter_argument_order.cpp)
|
||||||
add_cli_exe(prefix_command prefix_command.cpp)
|
add_cli_exe(prefix_command prefix_command.cpp)
|
||||||
add_cli_exe(enum enum.cpp)
|
add_cli_exe(enum enum.cpp)
|
||||||
|
add_cli_exe(modhelp modhelp.cpp)
|
||||||
|
|
||||||
add_subdirectory(subcom_in_files)
|
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