]> git.ipfire.org Git - pakfire.git/commitdiff
errors: Print a nice message on dependency errors
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 2 Jun 2017 17:03:00 +0000 (19:03 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 2 Jun 2017 17:03:00 +0000 (19:03 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/errors.py

index e8236f7e6b026faf37fc12ad3a9e28f095e447ba..6524638c1eabbaec9fc3107ee63fd92b917db4ee 100644 (file)
@@ -55,7 +55,31 @@ class DatabaseError(Error):
 class DependencyError(Error):
        exit_code = 4
 
-       message = _("One or more dependencies could not been resolved.")
+       def __init__(self, request):
+               Error.__init__(self)
+
+               # Request object that could not be solved
+               self.request = request
+
+       @property
+       def message(self):
+               lines = [
+                       _("One or more dependencies could not been resolved"),
+                       "", # empty line
+               ]
+
+               for problem in self.request.problems:
+                       lines.append("%s" % problem)
+
+                       lines.append(_("Possible solutions are:"))
+                       for solution in problem.solutions:
+                               lines.append("  %s" % solution)
+
+                       # Add another empty line
+                       lines.append("")
+
+               return "\n".join(lines)
+
 
 class DownloadError(Error):
        message = _("An error occured when pakfire tried to download files.")