From f92b5a516eddbdf33a69e95da6678eb9c9ef8c8c Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Tue, 4 Jun 2019 13:31:28 +0200 Subject: Add support for printing automatically generated help texts. --- example.cpp | 81 +++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 32 deletions(-) (limited to 'example.cpp') diff --git a/example.cpp b/example.cpp index e273c2f..bd94585 100644 --- a/example.cpp +++ b/example.cpp @@ -6,38 +6,55 @@ int main(int argc, char* argv[]) { int verbose_flag; dg::Options opt; - opt.add("verbose", no_argument, &verbose_flag, 1, [&]() { - std::cout << "verbose: " << verbose_flag << "\n"; - return 0; - }); - opt.add("brief", no_argument, &verbose_flag, 0, [&]() { - std::cout << "brief: " << verbose_flag << "\n"; - return 0; - }); - opt.add("add", no_argument, 'a', [&]() { - std::cout << "add\n"; - return 0; - }); - opt.add("append", no_argument, 'b', [&]() { - std::cout << "append\n"; - return 0; - }); - opt.add("delete", required_argument, 'd', [&]() { - std::cout << "delete: " << optarg << "\n"; - return 0; - }); - opt.add("create", required_argument, 'c', [&]() { - std::cout << "create: " << optarg << "\n"; - return 0; - }); - opt.add("file", required_argument, 'f', [&]() { - std::cout << "file: " << optarg << "\n"; - return 0; - }); - opt.add("help", no_argument, '?', [&]() { - std::cout << "usage stuff\n"; - return 0; - }); + opt.add("verbose", no_argument, &verbose_flag, 1, + "Be verbose.", + [&]() { + std::cout << "verbose: " << verbose_flag << "\n"; + return 0; + }); + opt.add("brief", no_argument, &verbose_flag, 0, + "Be brief.", + [&]() { + std::cout << "brief: " << verbose_flag << "\n"; + return 0; + }); + opt.add("add", no_argument, 'a', + "Add an entry.", + [&]() { + std::cout << "add\n"; + return 0; + }); + opt.add("append", no_argument, 'b', + "Append an entry.", + [&]() { + std::cout << "append\n"; + return 0; + }); + opt.add("delete", optional_argument, 'd', + "Delete an entry.", + [&]() { + std::cout << "delete: " << optarg << "\n"; + return 0; + }); + opt.add("create", required_argument, 'c', + "Create an entry.", + [&]() { + std::cout << "create: " << optarg << "\n"; + return 0; + }); + opt.add("file", required_argument, 'f', + "Some file argument.", + [&]() { + std::cout << "file: " << optarg << "\n"; + return 0; + }); + opt.add("help", no_argument, 'h', + "Print this help text.", + [&]() { + std::cout << "usage stuff\n"; + opt.help(); + return 0; + }); opt.process(argc, argv); for(auto const &arg : opt.arguments()) -- cgit v1.2.3