]> git.ipfire.org Git - pakfire.git/commitdiff
Add scriptlet to local package database.
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 22 Feb 2011 16:28:14 +0000 (17:28 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 22 Feb 2011 16:28:14 +0000 (17:28 +0100)
pakfire/database.py
pakfire/packages/file.py
pakfire/packages/installed.py
po/pakfire.pot

index a1672d2ef769a0a107363fa42cb818e7d06bf543..8f68c95a367caa544a8fa511808fb5890f4df6af 100644 (file)
@@ -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()
index 7a1257a34f7c15221c29be9a32c4590bf0bb3eac..1f73b627323dc664de5beb449c7120d33bb1f426 100644 (file)
@@ -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 ""
index 9aebed953de24fabddf2fe7fc34485d785d49ef3..b2562a63a2638edcacd6fc7453388b724611ff5a 100644 (file)
@@ -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?
index a6e45965ad991596e910ecd2f802f6d1bd6c8a9b..61be700163e330a40a4a7d8b089dd078aaff32b9 100644 (file)
@@ -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 <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"