summaryrefslogtreecommitdiff
path: root/lib/Task.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Task.cc')
-rw-r--r--lib/Task.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Task.cc b/lib/Task.cc
index 839c003..3cac327 100644
--- a/lib/Task.cc
+++ b/lib/Task.cc
@@ -33,6 +33,22 @@ int Task::Run() {
return state;
}
+int Task::DryRun() {
+ while (state != TASK_DONE) {
+ try {
+ state = Do();
+ }
+ catch (TaskSwitch) {
+ }
+ catch (GeneralException e) {
+ cerr << _("Task ") << GetName() << _(" caused an unexpected exception during dry-run: \"") << e.GetMsg() << _("\". Terminating.\n");
+ state = TASK_DONE;
+ }
+ }
+
+ return state;
+}
+
int Task::GetState() {
return state;
}