// Recursively merge files named "mark" from list in "files" in groups of "nBatch" files.
// parameter "level" is used to index recurent calls of this function.
- Char_t lMERGE[8]; sprintf(lMERGE, "%04d.lst", (Int_t)gRandom->Uniform(9999.));
- Char_t lPURGE[8]; sprintf(lPURGE, "%04d.lst", (Int_t)gRandom->Uniform(9999.));
+ Char_t lMERGE[8]; snprintf(lMERGE, 8, "%04d.lst", (Int_t)gRandom->Uniform(9999.));
+ Char_t lPURGE[8]; snprintf(lPURGE, 8, "%04d.lst", (Int_t)gRandom->Uniform(9999.));
// purge file list
std::string filename;
Info("MergeProd()", Form("Merge %d files in 1 batch.", nBatches));
if(!gSystem->Exec(Form("aliroot -b -q \'$ALICE_ROOT/PWG1/TRD/macros/mergeBatch.C(\"%s\", \"%s\", %d, 0, kFALSE)\'", mark, lMERGE, nBatches))) return;
gSystem->Exec(Form("mv 0_%s %s", mark, mark));
- } else MergeProd(mark, lMERGE, nBatch, level++);
+ } else {
+ level++;
+ Info("MergeProd()", Form("Merge level %d.", level));
+ MergeProd(mark, lMERGE, nBatch, level);
+ }
gSystem->Exec(Form("rm -fv %s %s", lMERGE, lPURGE));
}
continue;
}
if(kSVN){ // download SVN info for trending
- std::string base=filename.substr(0, filename.find_last_of('/'));
- if(gSystem->Exec(Form("if [ ! -f svnInfo.log ]; then cp -v %s/svnInfo.log %s; fi", base.c_str(), gSystem->ExpandPathName("$PWD"))) == 0) kSVN=kFALSE;
+ if(gSystem->Exec(Form("if [ ! -f svnInfo.log ]; then cp -v %s/svnInfo.log %s; fi", Dirname(filename.c_str()), gSystem->ExpandPathName("$PWD"))) == 0) kSVN=kFALSE;
}
Info("MergeBatch()", filename.c_str());
if(!fFM.AddFile(filename.c_str())) return NULL;