LCOV - code coverage report
Current view: top level - oksutils/apps - oks_refresh.cxx (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 41 0
Test Date: 2026-07-12 15:23:06 Functions: 0.0 % 1 0

            Line data    Source code
       1              : //
       2              : // DUNE DAQ modification notice:
       3              : // This file has been modified from the original ATLAS oks_utils source for the DUNE DAQ project.
       4              : // Fork baseline commit: c2e7dfc7 (2022-03-30).
       5              : // Renamed since fork: yes (from src/bin/oks_refresh.cpp to apps/oks_refresh.cxx).
       6              : //
       7              : 
       8              : /**
       9              :  *  \file oks_validate_repository.cpp
      10              :  *
      11              :  *  This file is part of the OKS package.
      12              :  *  Author: <Igor.Soloviev@cern.ch>
      13              :  */
      14              : 
      15              : #include <stdlib.h>
      16              : 
      17              : #include <boost/program_options.hpp>
      18              : 
      19              : #include "oks/kernel.hpp"
      20              : 
      21              : using namespace dunedaq;
      22              : using namespace dunedaq::oks;
      23              : 
      24              : int
      25            0 : main(int argc, char **argv)
      26              : {
      27            0 :   boost::program_options::options_description desc("This program opens and saves oks files to refresh their format");
      28              : 
      29            0 :   std::vector<std::string> include;
      30            0 :   std::vector<std::string> files;
      31            0 :   bool show_hidden_attributes = false;
      32              : 
      33            0 :   try
      34              :     {
      35            0 :       desc.add_options()
      36            0 :         ("files,f", boost::program_options::value<std::vector<std::string> >(&files)->multitoken()->required(), "oks files")
      37            0 :         ("include,i", boost::program_options::value<std::vector<std::string> >(&include)->multitoken(), "preload oks files (to fix missing includes)")
      38            0 :         ("show-all-attributes,x", "show hidden attributes with values equal to defaults")
      39            0 :         ("help,h", "Print help message");
      40              : 
      41            0 :       boost::program_options::variables_map vm;
      42            0 :       boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm);
      43              : 
      44            0 :       boost::program_options::notify(vm);
      45              : 
      46            0 :       if (vm.count("help"))
      47              :         {
      48            0 :           std::cout << desc << std::endl;
      49            0 :           return EXIT_SUCCESS;
      50              :         }
      51              : 
      52            0 :       if (vm.count("show-all-attributes"))
      53            0 :         show_hidden_attributes = true;
      54            0 :     }
      55            0 :   catch (std::exception& ex)
      56              :     {
      57            0 :       std::cerr << "Command line parsing errors occurred:\n" << ex.what() << std::endl;
      58            0 :       return EXIT_FAILURE;
      59            0 :     }
      60              : 
      61            0 :   for (const auto &x : files)
      62            0 :     try
      63              :       {
      64            0 :         std::cout << "processing file " << x  << std::endl;
      65            0 :         OksKernel kernel(false, false, false, false);
      66              : 
      67            0 :         for(const auto& i : include)
      68            0 :           kernel.load_file(i);
      69              : 
      70            0 :         auto f = kernel.load_file(x);
      71              : 
      72            0 :         if (f->get_oks_format() == "schema")
      73            0 :           kernel.save_schema(f);
      74              :         else
      75            0 :           kernel.save_data(f, true, nullptr, show_hidden_attributes);
      76            0 :       }
      77            0 :     catch (oks::exception &ex)
      78              :       {
      79            0 :         oks::log_timestamp(oks::Error) << "Caught oks exception:\n" << ex << std::endl;
      80            0 :         return EXIT_FAILURE;
      81            0 :       }
      82              : 
      83            0 :   return EXIT_SUCCESS;
      84            0 : }
        

Generated by: LCOV version 2.0-1