From: Michael Tremer Date: Tue, 22 Feb 2011 16:28:14 +0000 (+0100) Subject: Add scriptlet to local package database. X-Git-Tag: 0.9.3~145 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a5f5fcede6e862d0447739d85555624dd1f13d0e;p=pakfire.git Add scriptlet to local package database. --- diff --git a/pakfire/database.py b/pakfire/database.py index a1672d2ef..8f68c95a3 100644 --- a/pakfire/database.py +++ b/pakfire/database.py @@ -215,6 +215,7 @@ class LocalPackageDatabase(RemotePackageDatabase): ALTER TABLE packages ADD COLUMN installed INT; ALTER TABLE packages ADD COLUMN reason TEXT; ALTER TABLE packages ADD COLUMN repository TEXT; + ALTER TABLE packages ADD COLUMN scriptlet TEXT; """) self.commit() c.close() @@ -239,5 +240,8 @@ class LocalPackageDatabase(RemotePackageDatabase): # Update the filename information. c.execute("UPDATE packages SET filename = ? WHERE id = ?", (pkg.filename, pkg_id)) + # Add the scriptlet to database (needed to update or uninstall packages). + c.execute("UPDATE packages SET scriptlet = ? WHERE id = ?", (pkg.scriptlet, pkg_id)) + self.commit() c.close() diff --git a/pakfire/packages/file.py b/pakfire/packages/file.py index 7a1257a34..1f73b6273 100644 --- a/pakfire/packages/file.py +++ b/pakfire/packages/file.py @@ -169,3 +169,20 @@ class FilePackage(Package): """ return util.calc_hash1(self.filename) + @property + def scriptlet(self): + """ + Read the scriptlet from the archive or return an empty string if no + scriptlet does exist. + """ + ret = None + try: + f = self.get_file("control") + ret = f.read() + f.close() + + except KeyError: + # scriptlet file could not be found + pass + + return ret or "" diff --git a/pakfire/packages/installed.py b/pakfire/packages/installed.py index 9aebed953..b2562a63a 100644 --- a/pakfire/packages/installed.py +++ b/pakfire/packages/installed.py @@ -91,7 +91,7 @@ class DatabasePackage(Package): @property def size(self): - return self.metadata.get("size") + return self.metadata.get("size", 0) @property def provides(self): @@ -126,6 +126,10 @@ class DatabasePackage(Package): def hash1(self): return self.metadata.get("hash1") + @property + def scriptlet(self): + return self.metadata.get("scriptlet") + @property def filename(self): return self.metadata.get("filename") # XXX basename? diff --git a/po/pakfire.pot b/po/pakfire.pot index a6e45965a..61be70016 100644 --- a/po/pakfire.pot +++ b/po/pakfire.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-22 17:02+0100\n" +"POT-Creation-Date: 2011-02-22 17:27+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"