The Gaudi Framework  v30r3 (a5ef0a68)
merge.cpp File Reference
#include "merge/merge.C"
#include "TError.h"
#include <cstdlib>
Include dependency graph for merge.cpp:

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 24 of file merge.cpp.

25 {
26  bool dbg = false, fixup = true;
27  vector<string> input;
28  string output;
29  for ( int i = 1; i < argc; ++i ) {
30  if ( *argv[i] == '-' ) {
31  switch (::toupper( *( argv[i] + 1 ) ) ) {
32  case 'N':
33  fixup = false;
34  break;
35  case 'D':
36  dbg = true;
37  break;
38  case 'O':
39  if ( i + 1 < argc ) output = argv[i + 1];
40  ++i;
41  break;
42  case 'I':
43  if ( i + 1 < argc ) input.push_back( argv[i + 1] );
44  ++i;
45  break;
46  default:
47  return usage();
48  }
49  }
50  }
51  if ( input.empty() ) {
52  ::printf( "\nERROR: No input file(s) supplied\n\n" );
53  return usage();
54  } else if ( output.empty() ) {
55  ::printf( "\nERROR: No output file supplied.\n\n" );
56  return usage();
57  }
58  gROOT->SetBatch( kTRUE );
59  s_err = SetErrorHandler( err_handler );
60  for ( size_t i = 0; i < input.size(); ++i ) {
61  const string& in = input[i];
62  bool do_fixup = fixup && ( ( i + 1 ) == input.size() );
63  //::printf("+++ Target:%s\n+++ Source file:%s Fixup:%s Dbg:%s %d %d\n",
64  // output.c_str(),in.c_str(),do_fixup ? "YES" : "NO",dbg ? "YES" : "NO",i,input.size());
65  int result = merge( output.c_str(), in.c_str(), do_fixup, dbg );
66  if ( result == MERGE_ERROR ) {
67  printf( "\nERROR: File merge failed after %ld files.\n\n", long( i + 1 ) );
68  return 1;
69  }
70  }
71  return 0;
72 }
list argv
Definition: gaudirun.py:235
void usage(std::string argv0)
T printf(T...args)
void toupper(std::string &s)
T merge(T...args)