33 typedef void (*TPackMgrLog_t)(
const char *);
37 class TPackMgr :
public TNamed {
39 enum ECheckVersionOpt { kDontCheck = 0, kCheckROOT = 1, kCheckGIT = 2};
42 TPackMgrLog_t fLogger;
47 TList *fEnabledPackages;
49 static THashList *fgGlobalPackMgrList;
52 TPackMgr(
const TPackMgr&);
53 TPackMgr& operator=(
const TPackMgr&);
55 void Log(
const char *msg);
58 TPackMgr(
const char *dir,
const char *key =
"L0");
61 const char *GetName()
const {
return fName.Data(); }
62 void SetName(
const char *name) { fName = name; }
63 const char *GetTitle()
const {
return GetDir(); }
65 TLockPath *GetLock() {
return &fLock; }
67 void SetLogger(TPackMgrLog_t logger) { fLogger = logger; }
68 void SetPrefix(
const char *pfx) { fPfx = pfx; }
70 Int_t Build(
const char *pack, Int_t opt = TPackMgr::kCheckROOT);
71 Int_t Load(
const char *pack, TList *optls = 0);
72 Int_t Load(
const char *pack,
const char *opts);
73 Int_t Unload(
const char *pack);
75 Bool_t Has(
const char *pack);
76 Bool_t IsInDir(
const char *path);
77 const char *GetDir()
const {
return fDir.Data(); }
78 Int_t GetPackDir(
const char *pack, TString &pdir);
79 Int_t GetParPath(
const char *pack, TString &path);
80 Int_t GetDownloadDir(TString &dldir);
81 void GetEnabledPackages(TString &packlist);
82 Bool_t IsPackageEnabled(
const char *pack) {
83 return (fEnabledPackages &&
84 fEnabledPackages->FindObject(pack) ? kTRUE : kFALSE); }
86 void Show(
const char *title = 0);
87 Int_t Clean(
const char *pack);
88 Int_t Remove(
const char *pack = 0, Bool_t dolock = kTRUE);
89 TList *GetList()
const;
91 void ShowEnabled(
const char *title = 0);
92 TList* GetListOfEnabled()
const;
94 TMD5 *GetMD5(
const char *pack);
95 TMD5 *ReadMD5(
const char *pack);
97 Int_t Install(
const char *par, Bool_t rmold = kFALSE);
98 Int_t Unpack(
const char *pack, TMD5 *sum = 0);
101 static TPackMgr *GetPackMgr(
const char *pack, TPackMgr *packmgr =
nullptr);
102 static Int_t RegisterGlobalPath(
const char *paths);
103 static Int_t FindParPath(TPackMgr *packmgr,
const char *pack, TString &par);
104 static Bool_t IsEnabled(
const char *pack, TPackMgr *packmgr =
nullptr);