12 #include "art/Framework/Core/EDAnalyzer.h"
13 #include "art/Framework/Core/ModuleMacros.h"
14 #include "art/Framework/Principal/Event.h"
15 #include "art/Framework/Principal/Handle.h"
16 #include "art/Framework/Principal/Run.h"
17 #include "art/Framework/Principal/SubRun.h"
18 #include "canvas/Utilities/InputTag.h"
19 #include "fhiclcpp/ParameterSet.h"
21 #include "artdaq-core/Data/PackageBuildInfo.hh"
34 void analyze(art::Event
const & )
override {
38 virtual void beginRun(art::Run
const& r);
42 std::string buildinfo_module_label_;
43 std::string buildinfo_instance_label_;
48 artdaq::PrintBuildInfo::PrintBuildInfo(fhicl::ParameterSet
const & pset)
51 buildinfo_module_label_(pset.get<std::string>(
"buildinfo_module_label")),
52 buildinfo_instance_label_(pset.get<std::string>(
"buildinfo_instance_label"))
55 artdaq::PrintBuildInfo::~PrintBuildInfo()
61 void artdaq::PrintBuildInfo::beginRun(art::Run
const& run)
64 art::Handle<std::vector<artdaq::PackageBuildInfo> > raw;
66 run.getByLabel(buildinfo_module_label_, buildinfo_instance_label_, raw);
70 std::cout <<
"--------------------------------------------------------------" << std::endl;
72 std::cout << std::left <<
"Package" <<
"|";
74 std::cout << std::left <<
"Version" <<
"|";
76 std::cout << std::left <<
"Timestamp" << std::endl;
78 for (
auto pkg : *raw ) {
80 std::cout << std::left << pkg.getPackageName() <<
"|";
82 std::cout << std::left << pkg.getPackageVersion() <<
"|";
84 std::cout << std::left << pkg.getBuildTimestamp() << std::endl;
87 std::cout <<
"--------------------------------------------------------------" << std::endl;
91 std::cerr <<
"\n" << std::endl;
92 std::cerr <<
"Warning in artdaq::PrintBuildInfo module: Run " << run.run() <<
93 " appears not to have found product instance \"" << buildinfo_instance_label_ <<
94 "\" of module \"" << buildinfo_module_label_ <<
"\"" << std::endl;
95 std::cerr <<
"\n" << std::endl;