aboutsummaryrefslogtreecommitdiff
path: root/apps/apps.cpp
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2015-03-08 19:38:15 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2015-03-08 19:38:15 +0100
commiteecddf878f98bb921622a5a5bb2600aedb5a53fa (patch)
tree36c788ba073033e1ad1a2914b704a45f4d8c7ccd /apps/apps.cpp
parent552b997007a24943429488a3cc46c3e649316947 (diff)
downloadble-toys-eecddf878f98bb921622a5a5bb2600aedb5a53fa.tar.gz
ble-toys-eecddf878f98bb921622a5a5bb2600aedb5a53fa.tar.bz2
ble-toys-eecddf878f98bb921622a5a5bb2600aedb5a53fa.tar.xz
ble-toys-eecddf878f98bb921622a5a5bb2600aedb5a53fa.zip
o Improved SQL output.
Diffstat (limited to 'apps/apps.cpp')
-rw-r--r--apps/apps.cpp53
1 files changed, 29 insertions, 24 deletions
diff --git a/apps/apps.cpp b/apps/apps.cpp
index ca7cd81..edfb556 100644
--- a/apps/apps.cpp
+++ b/apps/apps.cpp
@@ -22,42 +22,47 @@ void setup_logging(po::variables_map vm) {
}
int launch_app(int argc, char *argv[], app& app) {
- po::options_description desc("Options");
+ po::options_description all("Options");
- auto x = desc.add_options();
- app.add_options(x);
+ auto all_options = all.add_options();
+ app.add_options(all_options);
- desc.add(logging_options());
+ all.add(logging_options());
+ app.add_extra_options(all);
po::variables_map vm;
- auto parsed = po::parse_command_line(argc, argv, desc);
- po::store(parsed, vm);
-
- app_execution execution(desc, vm);
try {
+ auto parsed = po::parse_command_line(argc, argv, all);
+ po::store(parsed, vm);
+
po::notify(vm);
- } catch (boost::program_options::required_option &e) {
- cerr << "Missing required option: " << e.get_option_name() << endl;
- execution.usage();
- return EXIT_FAILURE;
- }
- auto unrecognized = po::collect_unrecognized(parsed.options, po::include_positional);
+ auto unrecognized = po::collect_unrecognized(parsed.options, po::include_positional);
- if (vm.count("help")) {
- cerr << desc << "\n";
- return EXIT_FAILURE;
- }
+ if (vm.count("help")) {
+ cerr << all << "\n";
+ return EXIT_FAILURE;
+ }
- if (unrecognized.size()) {
- cerr << "Unrecognized option: " << unrecognized.at(0) << "\n";
- return EXIT_FAILURE;
- }
+ if (unrecognized.size()) {
+ cerr << "Unrecognized option: " << unrecognized.at(0) << "\n";
+ return EXIT_FAILURE;
+ }
- setup_logging(vm);
+ setup_logging(vm);
- return app.main(execution);
+ app_execution execution(all, vm);
+
+ return app.main(execution);
+ } catch (po::required_option &e) {
+ cerr << "Missing required option: " << e.get_option_name() << endl;
+ cerr << all << endl;
+ return EXIT_FAILURE;
+ } catch (po::unknown_option &e) {
+ cerr << e.what() << endl;
+ return EXIT_FAILURE;
+ }
}