From c3ef75a868e1148a44343276cd86ea417175fc46 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@cd1c1023-2f26-0410-ae45-c471fc1f0318> Date: Fri, 29 Feb 2008 22:11:23 +0000 Subject: [PATCH] - write a holy function that returns an action for a package git-svn-id: http://svn.sabayonlinux.org/projects/entropy/trunk@1342 cd1c1023-2f26-0410-ae45-c471fc1f0318 --- libraries/entropy.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/libraries/entropy.py b/libraries/entropy.py index 462185b25..83d68e046 100644 --- a/libraries/entropy.py +++ b/libraries/entropy.py @@ -671,6 +671,36 @@ class EquoInterface(TextInterface): found, match = self.check_package_update("app-admin/equo", deep = True) return found + ''' + @input: matched atom (idpackage,repoid) + @output: + upgrade: int(2) + install: int(1) + reinstall: int(0) + downgrade: int(-1) + ''' + def get_package_action(self, match): + dbconn = self.openRepositoryDatabase(match[1]) + pkgkey, pkgslot = dbconn.retrieveKeySlot(match[0]) + results = self.clientDbconn.searchKeySlot(pkgkey, pkgslot) + if not results: + return 1 + + installed_idpackage = results[0] + pkgver = dbconn.retrieveVersion(match[0]) + pkgtag = dbconn.retrieveVersionTag(match[0]) + pkgrev = dbconn.retrieveRevision(match[0]) + installedVer = self.clientDbconn.retrieveVersion(installed_idpackage) + installedTag = self.clientDbconn.retrieveVersionTag(installed_idpackage) + installedRev = self.clientDbconn.retrieveRevision(installed_idpackage) + pkgcmp = self.entropyTools.entropyCompareVersions((pkgver,pkgtag,pkgrev),(installedVer,installedTag,installedRev)) + if pkgcmp == 0: + return 0 + elif pkgcmp > 0: + return 2 + else: + return -1 + # better to use key:slot def check_package_update(self, atom, deep = False):