4 from micng.utils.errors import *
9 self.default_pkg_manager = None
11 def register_pkg_manager(self, name, manager):
12 # print "Registering package manager: %s" % name
13 if not self.managers.has_key(name):
14 self.managers[name] = manager
16 def unregister_pkg_manager(self, name):
17 if self.managers.has_key(name):
18 del self.managers[name]
20 def set_default_pkg_manager(self, name):
21 if self.managers.has_key(name):
22 self.default_pkg_manager = self.managers[name]
23 print "Use package manager %s" % name
25 def get_default_pkg_manager(self):
26 if self.default_pkg_manager:
27 return self.default_pkg_manager
29 if self.managers.has_key("zypp"):
30 print "Use package manager zypp"
31 return self.managers["zypp"]
32 elif self.managers.has_key("yum"):
33 print "Use package manager yum"
34 return self.managers["yum"]
36 keys = self.managers.keys()
38 print "Use package manager %s" % keys[0]
39 return self.managers[keys[0]]
43 def load_pkg_managers(self):
44 mydir = os.path.dirname(os.path.realpath(__file__))
45 for file in os.listdir(mydir):
46 if os.path.isfile(mydir + "/" + file) and file.endswith(".py") and file != "__init__.py":
47 pkgmgrmod = file[:file.rfind(".py")]
49 exec("import micng.utils.pkgmanagers.%s as %s " % (pkgmgrmod, pkgmgrmod))
50 exec("pkgmgr = %s._pkgmgr" % pkgmgrmod)
51 self.register_pkg_manager(pkgmgr[0], pkgmgr[1])
54 if not self.managers.keys():
55 raise CreatorError("No packag manager available")