Index: trunk/ippTasks/camera.pro
===================================================================
--- trunk/ippTasks/camera.pro	(revision 24595)
+++ trunk/ippTasks/camera.pro	(revision 24596)
@@ -7,14 +7,11 @@
 
 book init camPendingExp
-#book init camPendingCleanup
 
 macro camera.status
   book listbook camPendingExp
-#  book listbook camPendingCleanup
 end
 
 macro camera.reset
   book init camPendingExp
-#  book init camPendingCleanup
 end
 
@@ -37,24 +34,7 @@
 end
 
-# macro camera.cleanup.on
-#   task camera.cleanup.load
-#     active true
-#   end
-#   task camera.cleanup.run
-#     active true
-#   end
-# end
-
-# macro camera.cleanup.off
-#   task camera.cleanup.load
-#     active false
-#   end
-#   task camera.cleanup.run
-#     active false
-#   end
-# end
-
 # this variable will cycle through the known database names
 $camera_DB = 0
+$camera_revert_DB = 0
 
 # select images ready for camera analysis
@@ -199,122 +179,47 @@
 end
 
-# # this variable will cycle through the known database names
-# $camera_cleanup_DB = 0
-
-# # select images ready for cam analysis
-# # new entries are added to camPendingImfile
-# # skip already-present entries
-# task	       camera.cleanup.load
-#   host         local
-
-#   periods      -poll $LOADPOLL
-#   periods      -exec $LOADEXEC
-#   periods      -timeout 30
-#   npending     1
-#   active       false
-
-#   stdout NULL
-#   stderr $LOGDIR/camera.cleanup.log
-
-#   task.exec
-#     if ($LABEL:n == 0) break
-#     $run = camtool -pendingcleanuprun
-#     if ($DB:n == 0)
-#       option DEFAULT
-#     else
-#       # save the DB name for the exit tasks
-#       option $DB:$camera_cleanup_DB
-#       $run = $run -dbname $DB:$camera_cleanup_DB
-#       $camera_cleanup_DB ++
-#       if ($camera_cleanup_DB >= $DB:n) set camera_cleanup_DB = 0
-#     end
-#     add_poll_args run
-#     add_poll_labels run
-#     command $run
-#   end
-
-#   # success
-#   task.exit    0
-#     # convert 'stdout' to book format
-#     ipptool2book stdout camPendingCleanup -key cam_id -uniq -setword dbname $options:0 -setword pantaskState INIT
-#     if ($VERBOSE > 2)
-#       book listbook camPendingCleanup
-#     end
-
-#     # delete existing entries in the appropriate pantaskStates
-#     process_cleanup camPendingCleanup
-#   end
-
-#   # locked list
-#   task.exit    default
-#     showcommand failure
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#   end
-
-#   # operation times out?
-#   task.exit    timeout
-#     showcommand timeout
-#   end
-# end
-
-# # run the ipp_cleanup.pl script on pending images
-# task	       camera.cleanup.run
-#   periods      -poll $RUNPOLL
-#   periods      -exec $RUNEXEC
-#   periods      -timeout 60
-#   active       false
-
-#   task.exec
-#     book npages camPendingCleanup -var N
-#     if ($N == 0) break
-#     if ($NETWORK == 0) break
-    
-#     # look for new images in camPendingCleanup (pantaskState == INIT)
-#     book getpage camPendingCleanup 0 -var pageName -key pantaskState INIT
-#     if ("$pageName" == "NULL") break
-
-#     book setword camPendingCleanup $pageName pantaskState RUN
-#     book getword camPendingCleanup $pageName camera -var CAMERA
-#     book getword camPendingCleanup $pageName state  -var CLEANUP_MODE
-#     book getword camPendingCleanup $pageName cam_id -var CAM_ID
-#     book getword camPendingCleanup $pageName dbname -var DBNAME
-
-#     # specify choice of local or remote host based on camera and cam (class_id)
-#     set.host.for.camera $CAMERA FPA
-
-#     stdout $LOGDIR/camera.cleanup.log
-#     stderr $LOGDIR/camera.cleanup.log
-
-#     # XXX is everything listed here needed?
-#     $run = ipp_cleanup.pl --stage camera --stage_id $CAM_ID --camera $CAMERA --mode $CLEANUP_MODE
-#     add_standard_args run
-
-#     # save the pageName for future reference below
-#     options $pageName
-
-#     # create the command line
-#     if ($VERBOSE > 1)
-#       echo command $run
-#     end
-#     command $run
-#   end
-
-#   # default exit status
-#   task.exit    default
-#     process_exit camPendingCleanup $options:0 $JOB_STATUS
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#     book setword camPendingCleanup $options:0 pantaskState CRASH
-#   end
-
-#   # operation timed out?
-#   task.exit    timeout
-#     showcommand timeout
-#     book setword camPendingCleanup $options:0 pantaskState TIMEOUT
-#   end
-# end
+task camera.revert
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = camtool -revertprocessedexp
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$camera_revert_DB
+      $run = $run -dbname $DB:$camera_revert_DB
+      $camera_revert_DB ++
+      if ($camera_revert_DB >= $DB:n) set camera_revert_DB = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
Index: trunk/ippTasks/chip.pro
===================================================================
--- trunk/ippTasks/chip.pro	(revision 24595)
+++ trunk/ippTasks/chip.pro	(revision 24596)
@@ -3,21 +3,15 @@
 ## these tasks use the book chipPendingImfile
 
-## XXX the cleanup stage probably needs to mimic the chip processing stages, with an exposure and imfile layer
-## can we define the cleanup stages in a separate file derived from this file? 
-
 # test for required global variables
 check.globals
 
 book init chipPendingImfile
-#book init chipPendingCleanup
 
 macro chip.status
   book listbook chipPendingImfile
-#  book listbook chipPendingCleanup
 end
 
 macro chip.reset
   book init chipPendingImfile
-#  book init chipPendingCleanup
 end
 
@@ -46,24 +40,7 @@
 end
 
-# macro chip.cleanup.on
-#   task chip.cleanup.load
-#     active true
-#   end
-#   task chip.cleanup.run
-#     active true
-#   end
-# end
-
-# macro chip.cleanup.off
-#   task chip.cleanup.load
-#     active false
-#   end
-#   task chip.cleanup.run
-#     active false
-#   end
-# end
-
 # this variable will cycle through the known database names
 $chip_DB = 0
+$chip_revert_DB = 0
 
 # select images ready for chip analysis
@@ -273,122 +250,47 @@
 end
 
-# # this variable will cycle through the known database names
-# $chip_cleanup_DB = 0
-
-# # select images ready for chip analysis
-# # new entries are added to chipPendingImfile
-# # skip already-present entries
-# task	       chip.cleanup.load
-#   host         local
-
-#   periods      -poll $LOADPOLL
-#   periods      -exec $LOADEXEC
-#   periods      -timeout 30
-#   npending     1
-#   active       false
-
-#   stdout NULL
-#   stderr $LOGDIR/chip.cleanup.log
-
-#   task.exec
-#     if ($LABEL:n == 0) break
-#     $run = chiptool -pendingcleanuprun
-#     if ($DB:n == 0)
-#       option DEFAULT
-#     else
-#       # save the DB name for the exit tasks
-#       option $DB:$chip_cleanup_DB
-#       $run = $run -dbname $DB:$chip_cleanup_DB
-#       $chip_cleanup_DB ++
-#       if ($chip_cleanup_DB >= $DB:n) set chip_cleanup_DB = 0
-#     end
-#     add_poll_args run
-#     add_poll_labels run
-#     command $run
-#   end
-
-#   # success
-#   task.exit    0
-#     # convert 'stdout' to book format
-#     ipptool2book stdout chipPendingCleanup -key chip_id -uniq -setword dbname $options:0 -setword pantaskState INIT
-#     if ($VERBOSE > 2)
-#       book listbook chipPendingCleanup
-#     end
-
-#     # delete existing entries in the appropriate pantaskStates
-#     process_cleanup chipPendingCleanup
-#   end
-
-#   # locked list
-#   task.exit    default
-#     showcommand failure
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#   end
-
-#   # operation times out?
-#   task.exit    timeout
-#     showcommand timeout
-#   end
-# end
-
-# # run the ipp_cleanup.pl script on pending images
-# task	       chip.cleanup.run
-#   periods      -poll $RUNPOLL
-#   periods      -exec $RUNEXEC
-#   periods      -timeout 60
-#   active       false
-
-#   task.exec
-#     book npages chipPendingCleanup -var N
-#     if ($N == 0) break
-#     if ($NETWORK == 0) break
-    
-#     # look for new images in chipPendingCleanup (pantaskState == INIT)
-#     book getpage chipPendingCleanup 0 -var pageName -key pantaskState INIT
-#     if ("$pageName" == "NULL") break
-
-#     book setword chipPendingCleanup $pageName pantaskState RUN
-#     book getword chipPendingCleanup $pageName camera -var CAMERA
-#     book getword chipPendingCleanup $pageName state -var CLEANUP_MODE
-#     book getword chipPendingCleanup $pageName chip_id -var CHIP_ID
-#     book getword chipPendingCleanup $pageName dbname -var DBNAME
-
-#     # specify choice of local or remote host based on camera and chip (class_id)
-#     set.host.for.camera $CAMERA FPA
-
-#     stdout $LOGDIR/chip.cleanup.log
-#     stderr $LOGDIR/chip.cleanup.log
-
-#     # XXX is everything listed here needed?
-#     $run = ipp_cleanup.pl --stage chip --stage_id $CHIP_ID --camera $CAMERA --mode $CLEANUP_MODE
-#     add_standard_args run
-
-#     # save the pageName for future reference below
-#     options $pageName
-
-#     # create the command line
-#     if ($VERBOSE > 1)
-#       echo command $run
-#     end
-#     command $run
-#   end
-
-#   # default exit status
-#   task.exit    default
-#     process_exit chipPendingCleanup $options:0 $JOB_STATUS
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#     book setword chipPendingCleanup $options:0 pantaskState CRASH
-#   end
-
-#   # operation timed out?
-#   task.exit    timeout
-#     showcommand timeout
-#     book setword chipPendingCleanup $options:0 pantaskState TIMEOUT
-#   end
-# end
+task chip.revert
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = chiptool -revertprocessedimfile
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$chip_revert_DB
+      $run = $run -dbname $DB:$chip_revert_DB
+      $chip_revert_DB ++
+      if ($chip_revert_DB >= $DB:n) set chip_revert_DB = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
Index: trunk/ippTasks/fake.pro
===================================================================
--- trunk/ippTasks/fake.pro	(revision 24595)
+++ trunk/ippTasks/fake.pro	(revision 24596)
@@ -7,14 +7,11 @@
 
 book init fakePendingImfile
-#book init fakePendingCleanup
 
 macro fake.status
   book listbook fakePendingImfile
-#  book listbook fakePendingCleanup
 end
 
 macro fake.reset
   book init fakePendingImfile
-#  book init fakePendingCleanup
 end
 
@@ -43,24 +40,7 @@
 end
 
-# macro fake.cleanup.on
-#   task fake.cleanup.load
-#     active true
-#   end
-#   task fake.cleanup.run
-#     active true
-#   end
-# end
-
-# macro fake.cleanup.off
-#   task fake.cleanup.load
-#     active false
-#   end
-#   task fake.cleanup.run
-#     active false
-#   end
-# end
-
 # this variable will cycle through the known database names
 $fakeImfile_DB = 0
+$fake_revert_DB = 0
 
 # select images ready for fake analysis
@@ -249,123 +229,47 @@
 end
 
-# # this variable will cycle through the known database names
-# $fake_cleanup_DB = 0
-
-# # select images ready for fake analysis
-# # new entries are added to fakePendingImfile
-# # skip already-present entries
-# task	       fake.cleanup.load
-#   host         local
-
-#   periods      -poll $LOADPOLL
-#   periods      -exec $LOADEXEC
-#   periods      -timeout 30
-#   npending     1
-#   active       false
-
-#   stdout NULL
-#   stderr $LOGDIR/fake.cleanup.log
-
-#   task.exec
-#     if ($LABEL:n == 0) break
-#     $run = faketool -pendingcleanuprun
-#     if ($DB:n == 0)
-#       option DEFAULT
-#       command 
-#     else
-#       # save the DB name for the exit tasks
-#       option $DB:$fake_cleanup_DB
-#       $run = $run -dbname $DB:$fake_cleanup_DB
-#       $fake_cleanup_DB ++
-#       if ($fake_cleanup_DB >= $DB:n) set fake_cleanup_DB = 0
-#     end
-#     add_poll_args run
-#     add_poll_labels run
-#     command $run
-#   end
-
-#   # success
-#   task.exit    0
-#     # convert 'stdout' to book format
-#     ipptool2book stdout fakePendingCleanup -key fake_id -uniq -setword dbname $options:0 -setword pantaskState INIT
-#     if ($VERBOSE > 2)
-#       book listbook fakePendingCleanup
-#     end
-
-#     # delete existing entries in the appropriate pantaskStates
-#     process_cleanup fakePendingCleanup
-#   end
-
-#   # locked list
-#   task.exit    default
-#     showcommand failure
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#   end
-
-#   # operation times out?
-#   task.exit    timeout
-#     showcommand timeout
-#   end
-# end
-
-# # run the ipp_cleanup.pl script on pending images
-# task	       fake.cleanup.run
-#   periods      -poll $RUNPOLL
-#   periods      -exec $RUNEXEC
-#   periods      -timeout 60
-#   active       false
-
-#   task.exec
-#     book npages fakePendingCleanup -var N
-#     if ($N == 0) break
-#     if ($NETWORK == 0) break
-    
-#     # look for new images in fakePendingCleanup (pantaskState == INIT)
-#     book getpage fakePendingCleanup 0 -var pageName -key pantaskState INIT
-#     if ("$pageName" == "NULL") break
-
-#     book setword fakePendingCleanup $pageName pantaskState RUN
-#     book getword fakePendingCleanup $pageName camera -var CAMERA
-#     book getword fakePendingCleanup $pageName state -var CLEANUP_MODE
-#     book getword fakePendingCleanup $pageName fake_id -var FAKE_ID
-#     book getword fakePendingCleanup $pageName dbname -var DBNAME
-
-#     # specify choice of local or remote host based on camera and fake (class_id)
-#     set.host.for.camera $CAMERA FPA
-
-#     stdout $LOGDIR/fake.cleanup.log
-#     stderr $LOGDIR/fake.cleanup.log
-
-#     # XXX is everything listed here needed?
-#     $run = ipp_cleanup.pl --stage fake --stage_id $FAKE_ID --camera $CAMERA --mode $CLEANUP_MODE
-#     add_standard_args run
-
-#     # save the pageName for future reference below
-#     options $pageName
-
-#     # create the command line
-#     if ($VERBOSE > 1)
-#       echo command $run
-#     end
-#     command $run
-#   end
-
-#   # default exit status
-#   task.exit    default
-#     process_exit fakePendingCleanup $options:0 $JOB_STATUS
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#     book setword fakePendingCleanup $options:0 pantaskState CRASH
-#   end
-
-#   # operation timed out?
-#   task.exit    timeout
-#     showcommand timeout
-#     book setword fakePendingCleanup $options:0 pantaskState TIMEOUT
-#   end
-# end
+task fake.revert
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = faketool -revertprocessedimfile
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$fake_revert_DB
+      $run = $run -dbname $DB:$fake_revert_DB
+      $fake_revert_DB ++
+      if ($fake_revert_DB >= $DB:n) set fake_revert_DB = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
Index: trunk/ippTasks/warp.pro
===================================================================
--- trunk/ippTasks/warp.pro	(revision 24595)
+++ trunk/ippTasks/warp.pro	(revision 24596)
@@ -17,5 +17,6 @@
 $warpExp_DB = 0
 $warpSkycell_DB = 0
-#$warpCleanup_DB = 0
+$warp_revert_overlap_DB = 0
+$warp_revert_warped_DB = 0
 
 ### Check status of warping tasks
@@ -23,5 +24,4 @@
   book listbook warpInputExp
   book listbook warpPendingSkyCell
-#  book listbook warpPendingCleanup
 end
 
@@ -30,5 +30,4 @@
   book init warpInputExp
   book init warpPendingSkyCell
-#  book init warpPendingCleanup
 end
 
@@ -70,21 +69,4 @@
   end
 end
-
-# macro warp.cleanup.on
-#   task warp.cleanup.load
-#     active true
-#   end
-#   task warp.cleanup.run
-#     active true
-#   end
-# end
-# macro warp.cleanup.off
-#   task warp.cleanup.load
-#     active false
-#   end
-#   task warp.cleanup.run
-#     active false
-#   end
-# end
 
 ### Load tasks for calculating the warp overlaps
@@ -404,119 +386,93 @@
 end
 
-# # select images ready for warp analysis
-# # new entries are added to warpPendingImfile
-# # skip already-present entries
-# task	       warp.cleanup.load
-#   host         local
-
-#   periods      -poll $LOADPOLL
-#   periods      -exec $LOADEXEC
-#   periods      -timeout 30
-#   npending     1
-#   active       false
-
-#   stdout NULL
-#   stderr $LOGDIR/warp.cleanup.log
-
-#   task.exec
-#     if ($LABEL:n == 0) break
-#     $run = warptool -pendingcleanuprun
-#     if ($DB:n == 0)
-#       option DEFAULT
-#     else
-#       # save the DB name for the exit tasks
-#       option $DB:$warpCleanup_DB
-#       $run = $run -dbname $DB:$warpCleanup_DB
-#       $warpCleanup_DB ++
-#       if ($warpCleanup_DB >= $DB:n) set warpCleanup_DB = 0
-#     end
-#     add_poll_args run
-#     add_poll_labels run
-#     command $run
-#   end
-
-#   # success
-#   task.exit    0
-#     # convert 'stdout' to book format
-#     ipptool2book stdout warpPendingCleanup -key warp_id -uniq -setword dbname $options:0 -setword pantaskState INIT
-#     if ($VERBOSE > 2)
-#       book listbook warpPendingCleanup
-#     end
-
-#     # delete existing entries in the appropriate pantaskStates
-#     process_cleanup warpPendingCleanup
-#   end
-
-#   # locked list
-#   task.exit    default
-#     showcommand failure
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#   end
-
-#   # operation times out?
-#   task.exit    timeout
-#     showcommand timeout
-#   end
-# end
-
-# # run the ipp_cleanup.pl script on pending images
-# task	       warp.cleanup.run
-#   periods      -poll $RUNPOLL
-#   periods      -exec $RUNEXEC
-#   periods      -timeout 60
-#   active       false
-
-#   task.exec
-#     book npages warpPendingCleanup -var N
-#     if ($N == 0) break
-#     if ($NETWORK == 0) break
-    
-#     # look for new images in warpPendingCleanup (pantaskState == INIT)
-#     book getpage warpPendingCleanup 0 -var pageName -key pantaskState INIT
-#     if ("$pageName" == "NULL") break
-
-#     book setword warpPendingCleanup $pageName pantaskState RUN
-#     book getword warpPendingCleanup $pageName camera -var CAMERA
-#     book getword warpPendingCleanup $pageName state -var CLEANUP_MODE
-#     book getword warpPendingCleanup $pageName warp_id -var WARP_ID
-#     book getword warpPendingCleanup $pageName dbname -var DBNAME
-
-#     # specify choice of local or remote host based on camera and warp (class_id)
-#     set.host.for.camera $CAMERA FPA
-
-#     stdout $LOGDIR/warp.cleanup.log
-#     stderr $LOGDIR/warp.cleanup.log
-
-#     # XXX is everything listed here needed?
-#     $run = ipp_cleanup.pl --stage warp --stage_id $WARP_ID --camera $CAMERA --mode $CLEANUP_MODE
-#     add_standard_args run
-
-#     # save the pageName for future reference below
-#     options $pageName
-
-#     # create the command line
-#     if ($VERBOSE > 1)
-#       echo command $run
-#     end
-#     command $run
-#   end
-
-#   # default exit status
-#   task.exit    default
-#     process_exit warpPendingCleanup $options:0 $JOB_STATUS
-#   end
-
-#   task.exit    crash
-#     showcommand crash
-#     book setword warpPendingCleanup $options:0 pantaskState CRASH
-#   end
-
-#   # operation timed out?
-#   task.exit    timeout
-#     showcommand timeout
-#     book setword warpPendingCleanup $options:0 pantaskState TIMEOUT
-#   end
-# end
+task warp.revert.overlap
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = warptool -revertoverlap
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$warp_revert_overlap_DB
+      $run = $run -dbname $DB:$warp_revert_overlap_DB
+      $warp_revert_overlap_DB ++
+      if ($warp_revert_overlap_DB >= $DB:n) set warp_revert_overlap_DB = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
+task warp.revert.warped
+  host         local
+
+  periods      -poll 5.0
+  periods      -exec 60.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout NULL
+  stderr $LOGDIR/revert.log
+
+  task.exec
+    if ($LABEL:n == 0) break
+    $run = warptool -revertwarped
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      # save the DB name for the exit tasks
+      option $DB:$warp_revert_warped_DB
+      $run = $run -dbname $DB:$warp_revert_warped_DB
+      $warp_revert_warped_DB ++
+      if ($warp_revert_warped_DB >= $DB:n) set warp_revert_warped_DB = 0
+    end
+    add_poll_labels run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
