#include "hdiskspace.h" #include "TString.h" #include "TH1F.h" #include "TFile.h" #include "TSystem.h" #include "TROOT.h" #include #include "drawDisk.C" void diskspace(TString dir = "/hera/hades/user/kempter", TString outdir = "/misc/kempter/projects/diskspace/web", Int_t level = 1 ) { gROOT->SetBatch(); HDiskCatalog* catalog = 0; HDiskStat* stat = 0; Bool_t create = kTRUE; TString fname = dir; fname.ReplaceAll("/","_"); TString objname=fname; fname = Form("dirdata%s",fname.Data()); if(gSystem->AccessPathName(Form("%s/%s.root",outdir.Data(),fname.Data()))==0) create = kFALSE; cout<<"before input : -----------------------------------"<cd(); catalog = (HDiskCatalog*) gDirectory->Get(objname.Data()); stat = (HDiskStat*) gDirectory->Get(Form("stat%s",objname.Data())); if(catalog && catalog->diskname.CompareTo(dir)==0 ){ cout<<"\n\n\n"<printDisk(level,"size",8,"-"); } else { cout<<"Calatlog not found"<SetName(objname.Data()); stat = new HDiskStat(dir); stat ->SetName(Form("stat%s",objname.Data())); } cout<<"running scan : -------------------------------"<cd(); cout<<"\n\n\n"<scan(); cout<<"\n\n\n"<printDisk(level,"size",8,"-"); cout<<"adding to history : ------------------------"<getDir(catalog->getDiskName()); if(base){ vector daughters; stat->addEntry(catalog->getLastScanStart(),base); catalog->getDaughterDirs(base,daughters); for(UInt_t i=0;iaddEntry(catalog->getLastScanStart(),daughters[i]); } } //---------------------------------------------------------------- cout<<"drawing disk : ------------------------"<cd(); catalog->Write(); stat ->Write(); fout->Save(); fout->Close(); cout<<"\n\n\n"<Exec(Form("mv %s/%s.root %s/%s_old.root",outdir.Data(),fname.Data(),outdir.Data(),fname.Data())); gSystem->Exec(Form("mv %s/%s_new.root %s/%s.root",outdir.Data(),fname.Data(),outdir.Data(),fname.Data())); cout<<"finished : -----------------------------------"<