]> git.ipfire.org Git - pakfire.git/commitdiff
Fixes on filelist output.
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 13 Feb 2011 10:55:53 +0000 (11:55 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 13 Feb 2011 10:55:53 +0000 (11:55 +0100)
Always make sure there is a leading slash.

pakfire/packages/file.py
pakfire/packages/installed.py

index e25f0813b95605c46dd0fc3b9ca78b3873c956f8..6ca78ad9e07888f10c4433051c4867b635362eb0 100644 (file)
@@ -91,7 +91,13 @@ class FilePackage(Package):
        def __filelist_from_metadata(self):
                f = self.get_file("filelist")
 
-               ret = f.readlines()
+               ret = []
+               for line in f.readlines():
+                       line = line.strip()
+                       if not line.startswith("/"):
+                               line = "/%s" % line
+
+                       ret.append(line)
 
                f.close()
 
@@ -121,10 +127,13 @@ class FilePackage(Package):
                        read it instead. The latter is a very slow procedure and
                        should not be used anyway.
                """
-               try:
-                       return self.__filelist_from_metadata()
-               except KeyError:
-                       return self.__filelist_from_payload()
+               if not hasattr(self, "__filelist"):
+                       try:
+                               self.__filelist = self.__filelist_from_metadata()
+                       except KeyError:
+                               self.__filelist = self.__filelist_from_payload()
+
+               return self.__filelist
 
        @property
        def payload_compression(self):
index ffce0c22eb23c01023b43a96d792faa8e8cc61b9..5ddb2d0e7f5383802d7b4bc01ee120bbc49b0867 100644 (file)
@@ -125,7 +125,11 @@ class InstalledPackage(Package):
                c.execute("SELECT name FROM files WHERE pkg = '%s'" % self.id) # XXX?
 
                for f in c:
-                       yield f["name"]
+                       filename = f["name"]
+                       if not filename.startswith("/"):
+                               filename = "/%s" % filename
+
+                       yield filename
 
                c.close()