Setting language variable to english(otherwise , is interpreted as . in numbers)
21{
23 setenv("LC_ALL", "C", 1);
24
26
28
29 std::string configv;
30 std::string oksfn;
31 std::string rdbrl;
32 std::string roksrl;
33 QMap<QString, QString> argmap;
34
35 bop::options_description options_description("Allowed options", 128);
36
37 options_description.add_options()
38 ("help,h", "Provide help message")
39
40 ("version,v", bop::value<std::string>(&configv)->default_value(configv),
41 "OKS version to load (when the GIT back-end is used - valid only in file mode)")
42
43 ("file,f", bop::value<std::string>(&oksfn)->default_value(oksfn),
44 "OKS database file name")
45
46 ("rdb,r", bop::value<std::string>(&rdbrl)->default_value(rdbrl),
47 "RDB resource locator (e.g. rdbServerName@partitionName)")
48
49 ("roksrl,o",bop::value<std::string>(&roksrl)->default_value(roksrl),
50 "ROKS resource locator (e.g. oracle://atlas_oks/r:atlas_oks_archive:<schema version>:<data version>)");
51
52 bop::variables_map options_map;
53
54 try {
55 bop::parsed_options parsed = bop::command_line_parser(argc, argv).options(options_description).allow_unregistered().run();
56
57
58 const auto& unknown = bop::collect_unrecognized(parsed.options, bop::include_positional);
59 if(unknown.size() != 0) {
60 std::cerr << "Incorrect command line argument, unrecognized options: ";
61 for(const auto& o : unknown) {
62 std::cerr << o << " ";
63 }
64 std::cerr << std::endl;
65
66 return EXIT_FAILURE;
67 }
68
69 bop::store(parsed, options_map);
70 bop::notify(options_map);
71
72 auto display_help_message = [&options_description]()
73 {
74 std::cout
75 << "DBE: TDAQ online configuration database editor"
76 << std::endl
77 << std::endl
78 << "Usage: dbe [options]"
79 << std::endl
80 << std::endl
81 << options_description
82 << std::endl;
83 };
84
85 if(options_map.count("help")) {
86 display_help_message();
87 return EXIT_SUCCESS;
88 }
89
90 argmap.insert("f", QString::fromStdString(oksfn));
91 argmap.insert("r", QString::fromStdString(rdbrl));
92 argmap.insert("o", QString::fromStdString(roksrl));
93 argmap.insert("v", QString::fromStdString(configv));
94
95 }
96 catch(std::exception const & e) {
97 std::cerr << "Incorrect command line argument: " << e.what() << std::endl;
98 return EXIT_FAILURE;
99 }
100
102 try
103 {
104 window->show();
105 return myapp->exec();
106 }
107 catch (std::exception const & e)
108 {
109 std::cerr << "Exception: " << e.what() << std::endl;
110 }
111 catch (...)
112 {
113 std::cerr << "Unknown Exception" << std::endl;
114 }
115
116 return EXIT_FAILURE;
117}