Commit b2376bd3590074c3109d27f69779ea6e45ddf221

Authored by Henry Fredrick Schreiner
1 parent fc69345f

Adding example of completely custom help option

examples/CMakeLists.txt
... ... @@ -20,5 +20,6 @@ add_cli_exe(groups groups.cpp)
20 20 add_cli_exe(inter_argument_order inter_argument_order.cpp)
21 21 add_cli_exe(prefix_command prefix_command.cpp)
22 22 add_cli_exe(enum enum.cpp)
  23 +add_cli_exe(modhelp modhelp.cpp)
23 24  
24 25 add_subdirectory(subcom_in_files)
... ...
examples/modhelp.cpp 0 → 100644
  1 +// Modify the help print so that argument values are accessible
  2 +// Note that this will not shortcut `->required` and other similar options
  3 +
  4 +#include "CLI/CLI.hpp"
  5 +
  6 +#include <iostream>
  7 +
  8 +int main(int argc, char **argv) {
  9 + CLI::App test;
  10 +
  11 + // Remove help flag because it shortcuts all processing
  12 + test.set_help_flag();
  13 +
  14 + // Add custom flag that activates help
  15 + auto help = test.add_flag("-h,--help", "Request help");
  16 +
  17 + std::string some_option;
  18 + test.add_option("-a", some_option, "Some description");
  19 +
  20 + try {
  21 + test.parse(argc, argv);
  22 + if(*help)
  23 + throw CLI::CallForHelp();
  24 + } catch (const CLI::Error &e) {
  25 + std::cout << "Option string:" << some_option << std::endl;
  26 + return test.exit(e);
  27 + }
  28 +
  29 + std::cout << "Option string:" << some_option << std::endl;
  30 + return 0;
  31 +}
... ...