|
15 | 15 | #include <string> |
16 | 16 | #include <utility> |
17 | 17 | #include <iostream> |
18 | | - |
19 | | -namespace po = boost::program_options; |
| 18 | +#include "cxxopts.hpp" |
20 | 19 |
|
21 | 20 | int main(int argc, char* argv[]) { |
22 | 21 | using namespace boost::network; |
23 | | - po::options_description options("Allowed options"); |
24 | | - std::string output_filename, source; |
25 | | - bool show_headers; |
26 | | - options.add_options()("help,h", "produce help message")( |
27 | | - "headers,H", "print headers")("status,S", "print status and message")( |
28 | | - "source,s", po::value<std::string>(&source), "source URL"); |
29 | 22 |
|
30 | | - po::positional_options_description positional_options; |
31 | | - positional_options.add("source", 1); |
32 | | - po::variables_map vm; |
33 | | - try { |
34 | | - po::store(po::command_line_parser(argc, argv) |
35 | | - .options(options) |
36 | | - .positional(positional_options) |
37 | | - .run(), |
38 | | - vm); |
39 | | - po::notify(vm); |
40 | | - } |
41 | | - catch (std::exception& e) { |
42 | | - std::cout << "Error: " << e.what() << std::endl; |
43 | | - std::cout << options << std::endl; |
44 | | - return EXIT_FAILURE; |
45 | | - } |
| 23 | + cxxopts::Options options(argv[0], "Allowed options"); |
| 24 | + options.add_options() |
| 25 | + ("h,help", "produce help message") |
| 26 | + ("H,headers", "print headers") |
| 27 | + ("S,status", "print status and message") |
| 28 | + ("s,source", "source URL", cxxopts::value<std::string>()) |
| 29 | + ; |
| 30 | + |
| 31 | + options.parse_positional(std::vector<std::string>{"source"}); |
| 32 | + options.parse(argc, argv); |
46 | 33 |
|
47 | | - if (vm.count("help")) { |
48 | | - std::cout << options << std::endl; |
| 34 | + if (options.count("help")) { |
| 35 | + std::cout << options.help({"", "Group"}) << std::endl; |
49 | 36 | return EXIT_SUCCESS; |
50 | 37 | } |
51 | 38 |
|
52 | | - if (vm.count("source") < 1) { |
| 39 | + if (options.count("source") < 1) { |
53 | 40 | std::cout << "Error: Source URL required." << std::endl; |
54 | | - std::cout << options << std::endl; |
| 41 | + std::cout << options.help({"", "Group"}) << std::endl; |
55 | 42 | return EXIT_FAILURE; |
56 | 43 | } |
57 | 44 |
|
58 | | - show_headers = vm.count("headers") ? true : false; |
59 | | - bool show_status = vm.count("status") ? true : false; |
| 45 | + std::string source = options["source"].as<std::string>(); |
| 46 | + bool show_headers = options.count("headers") ? true : false; |
| 47 | + bool show_status = options.count("status") ? true : false; |
60 | 48 |
|
61 | 49 | http::client::request request(source); |
62 | 50 | http::client::string_type destination_ = host(request); |
|
0 commit comments