No code duplication

This commit is contained in:
Bahadır Kandemir
2009-12-09 12:15:39 +00:00
parent 26d14982c7
commit d43cb73a04
+35 -70
View File
@@ -74,22 +74,10 @@ class InstallDB(lazydb.LazyDB):
def __generate_installed_pkgs(self):
return dict(map(lambda x:pisi.util.parse_package_name(x), os.listdir(ctx.config.packages_dir())))
def __get_config_pending(self):
pending_info_path = os.path.join(ctx.config.info_dir(), ctx.const.config_pending)
if os.path.exists(pending_info_path):
return open(pending_info_path, "r").read().split()
return []
def __get_needs_restart(self):
restart_info_path = os.path.join(ctx.config.info_dir(), ctx.const.needs_restart)
if os.path.exists(restart_info_path):
return open(restart_info_path, "r").read().split()
return []
def __get_needs_reboot(self):
reboot_info_path = os.path.join(ctx.config.info_dir(), ctx.const.needs_reboot)
if os.path.exists(reboot_info_path):
return open(reboot_info_path, "r").read().split()
def __get_marked_packages(self, _type):
info_path = os.path.join(ctx.config.info_dir(), _type)
if os.path.exists(info_path):
return open(info_path, "r").read().split()
return []
def __add_to_revdeps(self, package, revdeps):
@@ -250,23 +238,20 @@ class InstallDB(lazydb.LazyDB):
metadata.read(metadata_xml)
return metadata.package
def __mark_package(self, _type, package):
packages = self.__get_marked_packages(_type)
if package not in packages:
packages.append(package)
self.__write_marked_packages(_type, packages)
def mark_pending(self, package):
config_pending = self.__get_config_pending()
if package not in config_pending:
config_pending.append(package)
self.__write_config_pending(config_pending)
self.__mark_package(ctx.const.config_pending, package)
def mark_needs_restart(self, package):
needs_restart = self.__get_needs_restart()
if package not in needs_restart:
needs_restart.append(package)
self.__write_needs_restart(needs_restart)
self.__mark_package(ctx.const.needs_restart, package)
def mark_needs_reboot(self, package):
needs_reboot = self.__get_needs_reboot()
if package not in needs_reboot:
needs_reboot.append(package)
self.__write_needs_reboot(needs_reboot)
self.__mark_package(ctx.const.needs_reboot, package)
def add_package(self, pkginfo):
self.installed_db[pkginfo.name] = "%s-%s" % (pkginfo.version, pkginfo.release)
@@ -278,58 +263,38 @@ class InstallDB(lazydb.LazyDB):
self.clear_pending(package_name)
def list_pending(self):
return self.__get_config_pending()
return self.__get_marked_packages(ctx.const.config_pending)
def list_needs_restart(self):
return self.__get_needs_restart()
return self.__get_marked_packages(ctx.const.needs_restart)
def list_needs_reboot(self):
return self.__get_needs_reboot()
return self.__get_marked_packages(ctx.const.needs_reboot)
def __write_marked_packages(self, _type, packages):
info_file = os.path.join(ctx.config.info_dir(), _type)
config = open(info_file, "w")
for pkg in set(packages):
config.write("%s\n" % pkg)
config.close()
def __clear_marked_packages(self, _type, package):
if package == "*":
self.__write_marked_packages(_type, [])
return
packages = self.__get_marked_packages(_type)
if package in packages:
packages.remove(package)
self.__write_marked_packages(_type, packages)
def clear_pending(self, package):
config_pending = self.__get_config_pending()
if package in config_pending:
config_pending.remove(package)
self.__write_config_pending(config_pending)
self.__clear_marked_packages(ctx.const.config_pending, package)
def clear_needs_restart(self, package):
if package == "*":
self.__write_needs_restart([])
return
needs_restart = self.__get_needs_restart()
if package in needs_restart:
needs_restart.remove(package)
self.__write_needs_restart(needs_restart)
self.__clear_marked_packages(ctx.const.needs_restart, package)
def clear_needs_reboot(self, package):
if package == "*":
self.__write_needs_reboot([])
return
needs_reboot = self.__get_needs_reboot()
if package in needs_reboot:
needs_reboot.remove(package)
self.__write_needs_reboot(needs_reboot)
def __write_config_pending(self, config_pending):
pending_info_file = os.path.join(ctx.config.info_dir(), ctx.const.config_pending)
pending = open(pending_info_file, "w")
for pkg in set(config_pending):
pending.write("%s\n" % pkg)
pending.close()
def __write_needs_restart(self, needs_restart):
restart_info_file = os.path.join(ctx.config.info_dir(), ctx.const.needs_restart)
restart = open(restart_info_file, "w")
for pkg in set(needs_restart):
restart.write("%s\n" % pkg)
restart.close()
def __write_needs_reboot(self, needs_reboot):
reboot_info_file = os.path.join(ctx.config.info_dir(), ctx.const.needs_reboot)
reboot = open(reboot_info_file, "w")
for pkg in set(needs_reboot):
reboot.write("%s\n" % pkg)
reboot.close()
self.__clear_marked_packages(ctx.const.needs_reboot, package)
def package_path(self, package):