self.status = self.IN_PROGRESS
self.state_changed()
self.runNext()
- sumTaskWeightings = sum([t.weighting for t in self.tasks])
+ sumTaskWeightings = sum([t.weighting for t in self.tasks]) or 1
self.weightScale = self.end / float(sumTaskWeightings)
def runNext(self):
from enigma import eConsoleAppContainer
self.container = eConsoleAppContainer()
self.container.appClosed.get().append(self.processFinished)
- self.container.dataAvail.get().append(self.processOutput)
+ self.container.stdoutAvail.get().append(self.processStdout)
+ self.container.stderrAvail.get().append(self.processStderr)
assert self.cmd is not None
assert len(self.args) >= 1
def cleanup(self, failed):
pass
+
+ def processStdout(self, data):
+ self.processOutput(data)
+
+ def processStderr(self, data):
+ self.processOutput(data)
def processOutput(self, data):
self.output_line += data
if problems:
from Tools import Notifications
from Screens.MessageBox import MessageBox
- Notifications.AddNotificationWithCallback(self.errorCB, MessageBox, _("Error: %s\nRetry?") % (problems[0].getErrorMessage(task)))
+ if problems[0].RECOVERABLE:
+ Notifications.AddNotificationWithCallback(self.errorCB, MessageBox, _("Error: %s\nRetry?") % (problems[0].getErrorMessage(task)))
+ else:
+ Notifications.AddNotification(MessageBox, _("Error") + (': %s') % (problems[0].getErrorMessage(task)), type = MessageBox.TYPE_ERROR )
+ self.errorCB(False)
return
#self.failed_jobs.append(self.active_job)
RECOVERABLE = False
def getErrorMessage(self, task):
- return _("An error has occured. (%s)") % (self.__class__.__name__)
+ return _("An unknown error occured!") + " (%s @ task %s)" % (self.__class__.__name__, task.__class__.__name__)
class WorkspaceExistsPrecondition(Condition):
def check(self, task):