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.

24  {
25  bool dbg = false, fixup=true;
26  vector<string> input;
27  string output;
28  for(int i=1; i < argc; ++i) {
29  if ( *argv[i] == '-' ) {
30  switch(::toupper(*(argv[i]+1))) {
31  case 'N':
32  fixup = false;
33  break;
34  case 'D':
35  dbg = true;
36  break;
37  case 'O':
38  if ( i+1 < argc ) output = argv[i+1];
39  ++i;
40  break;
41  case 'I':
42  if ( i+1 < argc ) input.push_back(argv[i+1]);
43  ++i;
44  break;
45  default:
46  return usage();
47  }
48  }
49  }
50  if ( input.empty() ) {
51  ::printf("\nERROR: No input file(s) supplied\n\n");
52  return usage();
53  }
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:227
void usage(std::string argv0)
T printf(T...args)
void toupper(std::string &s)
T merge(T...args)