From 90df7894aa6e653ce8ae3d5852a7015a289ce531 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 10 Jan 2020 16:56:50 -0800 Subject: [PATCH] Make tasks more robust in handling failure by checking for return codes --- dangerzone/tasks.py | 16 +++++++++++++--- dangerzone/tasks_widget.py | 5 +++-- share/container | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/dangerzone/tasks.py b/dangerzone/tasks.py index 0ce04ad..7a5f6ab 100644 --- a/dangerzone/tasks.py +++ b/dangerzone/tasks.py @@ -46,7 +46,7 @@ class TaskBase(QtCore.QThread): output += p.stdout.read() self.update_details.emit(output) - return output + return p.returncode, output class PullImageTask(TaskBase): @@ -98,7 +98,11 @@ class ConvertToPixels(TaskBase): "dangerzone", "document-to-pixels", ] - output = self.exec_container(args) + returncode, output = self.exec_container(args) + + if returncode != 0: + self.task_failed.emit(f"Return code: {returncode}") + return # Did we hit an error? for line in output.split("\n"): @@ -197,5 +201,11 @@ class ConvertToPDF(TaskBase): + envs + ["dangerzone", "pixels-to-pdf",] ) - self.exec_container(args) + returncode, output = self.exec_container(args) + + if returncode != 0: + self.task_failed.emit(f"Return code: {returncode}") + return + self.task_finished.emit() + diff --git a/dangerzone/tasks_widget.py b/dangerzone/tasks_widget.py index d7cad13..b852f08 100644 --- a/dangerzone/tasks_widget.py +++ b/dangerzone/tasks_widget.py @@ -63,10 +63,11 @@ class TasksWidget(QtWidgets.QWidget): self.task_details.setText(s) def task_failed(self, err): - self.task_label.setText("Task failed :(") + self.task_label.setText("Failed :(") self.task_details.setWordWrap(True) + text = self.task_details.text() self.task_details.setText( - f"Directory with pixel data: {self.common.pixel_dir.name}\n\n{err}" + f"{text}\n\n--\n\nDirectory with pixel data: {self.common.pixel_dir.name}\n\n{err}" ) def all_done(self): diff --git a/share/container b/share/container index c0cc2c3..8659910 160000 --- a/share/container +++ b/share/container @@ -1 +1 @@ -Subproject commit c0cc2c3e7e168bbf6a9bc39c582039d0fbad52bb +Subproject commit 86599101444c476d2c53a97232e8c6bcbecadc09