20 std::string sCompare{};
23 po::options_description desc(
"Allowed options");
24 desc.add_options()(
"help,h",
"Display help message")(
25 "compare,t", po::value<std::string>(&sCompare)->required()->value_name(
"commit"),
26 "Specify comparison type (only 'commit' or 'weeklyTest' are allowed)")(
27 "names,n", po::value<std::vector<std::string>>(&
fNames)->multitoken()->value_name(
"<hash1 hash2 ...>"),
28 "List of commit hash or week numbers(yyyy_ww). It will act as Version in the config file")(
29 "output,o", po::value<std::string>(&
fOutput)->default_value(
"./output_compare_qa.root"),
30 "Specify output file name")(
31 "config,c", po::value<std::string>(&
fConfig)->default_value(
"macro/qa/configs/objects_weekly.yaml"),
32 "Specify config file")(
"builddir,b", po::value<std::string>(&
fBuilddir)->default_value(
""),
33 "Specify cbmroot build directory")(
34 "option,p", po::value<std::string>(&
fOption)->default_value(
"ESR"),
35 "Specify the option for comparison (e.g., E for exact)");
38 po::variables_map vars;
39 po::store(po::parse_command_line(argc, argv, desc), vars);
42 if (vars.count(
"help")) {
43 std::cout << desc << std::endl;
51 if (sCompare ==
"commit") {
54 else if (sCompare ==
"weeklyTest") {
58 throw po::validation_error(po::validation_error::invalid_option_value,
"compare", sCompare);
61 catch (
const po::error& e) {
62 std::cerr <<
"Error: " << e.what() << std::endl;