]> git.ipfire.org Git - pakfire.git/commitdiff
Dump information about built packages afterwards.
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 7 Aug 2011 10:18:16 +0000 (12:18 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 7 Aug 2011 10:18:16 +0000 (12:18 +0200)
pakfire/builder.py
pakfire/packages/base.py
pakfire/packages/solv.py
pakfire/repository/__init__.py
pakfire/repository/base.py
po/pakfire.pot

index d96acbc254fc7b38e96f6d06b271575302e78f1e..6d03581218c0c8120e2b57ea3587af2052eeb3f7 100644 (file)
@@ -683,6 +683,9 @@ class Builder(object):
                                self.settings["icecream_toolchain"] = "/%s" % m.group(1)
 
        def build(self):
+               assert self.pkg
+
+               # Create icecream toolchain.
                self.create_icecream_toolchain()
 
                try:
@@ -694,6 +697,21 @@ class Builder(object):
                for pkg in reversed(self.packages):
                        packager = packages.BinaryPackager(self.pakfire, pkg, self)
                        packager()
+               self.log.info("")
+
+               self.log.info(_("Dumping created packages"))
+               repo = repository.RepositoryDir(self.pakfire, "build-%s" % self.build_id,
+                       "", self.chrootPath("result"), type="binary")
+               self.pakfire.repos.add_repo(repo)
+
+               repo.update()
+               for line in repo.dump(long=True, filelist=True).splitlines():
+                       self.log.info("  %s" % line)
+               self.log.info("")
+
+               self.pakfire.repos.rem_repo(repo)
+
+               return repo
 
        def dist(self):
                self.pkg.dist(self)
index 542f48870beb73614b7298d431cb30be79672c65..32a2c9aed7f91eb0190762b62d67890fec6ad0a9 100644 (file)
@@ -81,7 +81,7 @@ class Package(object):
 
                return hash("-".join(hashstr))
 
-       def dump(self, short=False, long=False):
+       def dump(self, short=False, long=False, filelist=False):
                if short:
                        return "%s.%s : %s" % (self.name, self.arch, self.summary)
 
@@ -119,6 +119,11 @@ class Package(object):
                                items.append((caption, req))
                                caption = ""
 
+               # Append filelist if requested.
+               if filelist:
+                       for file in self.filelist:
+                               items.append((_("File"), file))
+
                format = "%%-%ds : %%s" % (max([len(k) for k, v in items]))
 
                s = []
@@ -296,6 +301,9 @@ class Package(object):
                        Automatically convert the UNIX timestamp from self.build_time to
                        a humanly readable format.
                """
+               if self.build_time is None:
+                       return _("Not set")
+
                return "%s UTC" % datetime.datetime.utcfromtimestamp(self.build_time)
 
        @property
@@ -359,6 +367,10 @@ class Package(object):
        def obsoletes(self):
                return self.metadata.get("PKG_OBSOLETES", "").split()
 
+       @property
+       def filelist(self):
+               raise NotImplementedError
+
        def extract(self, path, prefix=None):
                raise NotImplementedError, "%s" % repr(self)
 
index 5f2637a5e4a7fa8b43189779982d6a8e0341ed27..0ec8973a46e46e478fac741d7660846405bd9fc1 100644 (file)
@@ -94,7 +94,7 @@ class SolvPackage(base.Package):
 
        @property
        def description(self):
-               return self.solvable.get_description()
+               return self.solvable.get_description() or ""
 
        @property
        def groups(self):
@@ -176,6 +176,11 @@ class SolvPackage(base.Package):
        def filename(self):
                return self.solvable.get_filename()
 
+       @property
+       def filelist(self):
+               # XXX need to support filelist.
+               return ["%s does not support filelists, yet." % self.__class__.__name__,]
+
        @property
        def is_in_cache(self):
                # Local files are always kinda cached.
index a6dc69c296b75af6213a33fbc0fd066d89226793..901fdbee4bf442bbc8713155f3fe42d933fb47f5 100644 (file)
@@ -109,6 +109,15 @@ class Repositories(object):
 
                self.__repos[repo.name] = repo
 
+       def rem_repo(self, repo):
+               """
+                       Remove the given repository from the global repository set.
+               """
+               try:
+                       del self.__repos[repo.name]
+               except KeyError:
+                       logging.debug("Repository that was to be removed does not exist: %s" % repo.name)
+
        def get_repo(self, name):
                """
                        Get the repository with the given name, if not available, return
index d6d760b3db4de93b617f574aa1a09ec99323abd5..e2ca5174f90224604d72751218943c0a678f3e97 100644 (file)
@@ -125,6 +125,15 @@ class RepositoryFactory(object):
                assert self.index
                self.index.clear()
 
+       def dump(self, long=False, filelist=False):
+               dumps = []
+               # Dump all package information of the packages in this repository.
+               for pkg in self:
+                       dump = pkg.dump(long=long, filelist=filelist)
+                       dumps.append(dump)
+
+               return "\n\n".join(dumps)
+
 
 class RepositoryDummy(RepositoryFactory):
        """
index 0bb6f4309ecb928625af4043e2a50562c2e7555a..62409f3e76c0c2b0a70a45d4b735da3de7b0160b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-08-06 20:55+0200\n"
+"POT-Creation-Date: 2011-08-07 12:13+0200\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"
@@ -39,7 +39,7 @@ msgid "Downgrading"
 msgstr ""
 
 #: ../pakfire/base.py:188 ../pakfire/base.py:202 ../pakfire/base.py:244
-#: ../pakfire/base.py:279 ../pakfire/base.py:312
+#: ../pakfire/base.py:284 ../pakfire/base.py:317
 msgid "Nothing to do"
 msgstr ""
 
@@ -47,7 +47,7 @@ msgstr ""
 msgid "There are no packages to install."
 msgstr ""
 
-#: ../pakfire/base.py:508
+#: ../pakfire/base.py:513
 msgid "Everything is fine."
 msgstr ""
 
@@ -56,6 +56,10 @@ msgstr ""
 msgid "Extracting: %s (source)"
 msgstr ""
 
+#: ../pakfire/builder.py:702
+msgid "Dumping created packages"
+msgstr ""
+
 #: ../pakfire/cli.py:42
 msgid "Pakfire command line interface."
 msgstr ""
@@ -367,6 +371,14 @@ msgstr ""
 msgid "Requires"
 msgstr ""
 
+#: ../pakfire/packages/base.py:125
+msgid "File"
+msgstr ""
+
+#: ../pakfire/packages/base.py:305
+msgid "Not set"
+msgstr ""
+
 #: ../pakfire/repository/index.py:220
 #, python-format
 msgid ""