From 03d34297b5e3304fff19caa200ad17301f730eec Mon Sep 17 00:00:00 2001 From: HanzZ Date: Sat, 14 May 2011 18:52:14 +0200 Subject: [PATCH] parse config file --- spectrum/src/main.cpp | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/spectrum/src/main.cpp b/spectrum/src/main.cpp index 6edd0e76..33201230 100644 --- a/spectrum/src/main.cpp +++ b/spectrum/src/main.cpp @@ -9,11 +9,45 @@ using namespace Transport; -int main(void) +int main(int argc, char **argv) { Config config; - if (!config.load("sample.cfg")) { - std::cout << "Can't open sample.cfg configuration file.\n"; + + boost::program_options::options_description desc("Usage: spectrum [OPTIONS] \nAllowed options"); + desc.add_options() + ("help,h", "help") + ("no-daemonize,n", "Do not run spectrum as daemon") + ; + try + { + boost::program_options::variables_map vm; + boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); + boost::program_options::notify(vm); + if(vm.count("help")) + { + std::cout << desc << "\n"; + exit(1); + } + } + catch (std::runtime_error& e) + { + std::cout << desc << "\n"; + exit(1); + } + catch (...) + { + std::cout << desc << "\n"; + exit(1); + } + + if (argc != 2) { + std::cout << desc << "\n"; + exit(1); + } + + + if (!config.load(argv[1])) { + std::cerr << "Can't load configuration file.\n"; return 1; } @@ -24,7 +58,7 @@ int main(void) SQLite3Backend sql(&config); logger.setStorageBackend(&sql); if (!sql.connect()) { - std::cout << "Can't connect to database.\n"; + std::cerr << "Can't connect to database.\n"; } UserManager userManager(&transport, &sql);