diff options
Diffstat (limited to 'lib/Task.cc')
-rw-r--r-- | lib/Task.cc | 16 |
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; } |