Yay! A milestone for pisi history

This commit is contained in:
Faik Uygur
2008-01-25 12:32:37 +00:00
parent 7af80923b5
commit 6e709f06d6
2 changed files with 17 additions and 4 deletions
+9 -2
View File
@@ -54,7 +54,8 @@ class AtomicOperation(object):
pass
# possible paths of install operation
(INSTALL, REINSTALL, UPGRADE, DOWNGRADE) = range(4)
(INSTALL, REINSTALL, UPGRADE, DOWNGRADE, REMOVE) = range(5)
opttostr = {INSTALL:"install", REMOVE:"remove", REINSTALL:"reinstall", UPGRADE:"upgrade", DOWNGRADE:"downgrade"}
class Install(AtomicOperation):
"Install class, provides install routines for pisi packages"
@@ -425,6 +426,8 @@ class Install(AtomicOperation):
# installed packages
self.installdb.add_package(self.pkginfo)
self.historydb.update(pkgBefore=self.old_pkginfo, pkgAfter=self.pkginfo, operation=opttostr[self.operation])
def install_single(pkg, upgrade = False):
"""install a single package from URI or ID"""
@@ -478,7 +481,7 @@ class Remove(AtomicOperation):
for fileinfo in self.files.list:
self.remove_file(fileinfo, self.package_name)
self.remove_db()
self.update_databases()
self.remove_pisi_files()
ctx.ui.close()
@@ -541,6 +544,10 @@ class Remove(AtomicOperation):
os.path.join(self.package.pkg_dir(), ctx.const.files_xml),
)
def update_databases(self):
self.remove_db()
self.historydb.update(pkgBefore=self.package, operation="remove")
def remove_pisi_files(self):
util.clean_dir(self.package.pkg_dir())
+8 -2
View File
@@ -72,19 +72,25 @@ class History(xmlfile.XmlFile):
def add(self, pkgBefore=None, pkgAfter=None, operation=None):
if operation not in ["upgrade", "remove", "install"]:
if operation not in ["upgrade", "remove", "install", "reinstall", "downgrade"]:
raise Exception("Unknown package operation")
package = Package()
package.operation = operation
package.name = (pkgAfter and pkgAfter.name) or (pkgBefore and pkgBefore.name)
if not pkgBefore:
package.before = None
if not pkgAfter:
package.after = None
for histInfo, pkgInfo in [(package.before, pkgBefore), (package.after, pkgAfter)]:
if pkgInfo:
histInfo.version = str(pkgInfo.version)
histInfo.release = str(pkgInfo.release)
histInfo.build = pkgInfo.build and str(pkgInfo.build)
self.operation.packages.append(package)
def update(self):