Index: trunk/ippTasks/survey.pro
===================================================================
--- trunk/ippTasks/survey.pro	(revision 35477)
+++ trunk/ippTasks/survey.pro	(revision 35517)
@@ -20,4 +20,5 @@
  book create SURVEY_LAPGROUP
  book create SURVEY_RELEXP
+ book create SURVEY_RELSTACK
  $haveSurveyBooks = TRUE
 end
@@ -37,8 +38,11 @@
 $SURVEY_LAPGROUP_DB = 0
 $SURVEY_RELEXP_DB = 0
+$SURVEY_RELSTACK_DB = 0
 $SURVEY_STATICSKYSINGLE_DB = 0
 $SURVEY_EXEC = 120
 $SURVEY_POLL = 10
 $SURVEY_TIMEOUT = 600
+# the tasks for loading the release tabels for nightly science do not need to run very often
+$SURVEY_RELEASE_EXEC 300
 
 macro survey.on
@@ -88,4 +92,7 @@
     active true
   end
+  task survey.relstack
+    active true
+  end
 end
 
@@ -134,4 +141,7 @@
   end
   task survey.relexp
+    active false
+  end
+  task survey.relstack
     active false
   end
@@ -568,4 +578,31 @@
   end
   book listbook SURVEY_RELEXP
+end
+
+macro survey.add.relstack
+  if ($0 != 3)
+    echo "USAGE: survey.add.relstack (label) (releasename)"
+    break
+  end
+  book newpage SURVEY_RELSTACK $1
+  book setword SURVEY_RELSTACK $1 LABEL $1
+  book setword SURVEY_RELSTACK $1 RELEASE_NAME $2
+  book setword SURVEY_RELSTACK $1 STATE PENDING
+end
+
+macro survey.del.relstack
+  if ($0 != 2)
+    echo "USAGE: survey.del.relstack (label)"
+    break
+  end
+  book delpage SURVEY_RELSTACK $1
+end
+
+macro survey.show.relstack
+  if ($0 != 1)
+    echo "USAGE: survey.show.relstack"
+    break
+  end
+  book listbook SURVEY_RELSTACK
 end
 
@@ -1706,5 +1743,5 @@
  
   periods      -poll $SURVEY_POLL
-  periods      -exec $SURVEY_EXEC
+  periods      -exec $SURVEY_RELEASE_EXEC
   periods      -timeout $SURVEY_TIMEOUT
   npending     1
@@ -1770,2 +1807,72 @@
   end
 end
+
+task survey.relstack
+  host local
+ 
+  periods      -poll $SURVEY_POLL
+  periods      -exec $SURVEY_RELEASE_EXEC
+  periods      -timeout $SURVEY_TIMEOUT
+  npending     1
+
+  stdout $LOGDIR/survey.relstack.log
+  stderr $LOGDIR/survey.relstack.log
+
+  task.exec
+    book npages SURVEY_RELSTACK -var N
+    if ($N == 0)
+#      echo "No labels for processing"
+      break
+    endif
+
+    book getpage SURVEY_RELSTACK 0 -var label -key STATE NEW
+    if ("$label" == "NULL")
+      # All labels have been done --- reset
+#      echo "Resetting labels"
+      for i 0 $N
+        book getpage SURVEY_RELSTACK $i -var label
+	book setword SURVEY_RELSTACK $label STATE NEW
+      end
+      book getpage SURVEY_RELSTACK 0 -var label -key STATE NEW
+
+      # Select different database
+      $SURVEY_RELSTACK_DB ++
+      if ($SURVEY_RELSTACK_DB >= $DB:n) set SURVEY_RELSTACK_DB = 0
+    end
+
+    book setword SURVEY_RELSTACK $label STATE DONE
+    book getword SURVEY_RELSTACK $label RELEASE_NAME -var RELEASE_NAME
+
+    # XXX: Can we use the survey task for stack types other than nightly?
+    $run = releasetool -definerelstack -label $label -release_name $RELEASE_NAME -set_state processed -set_stack_type nightly
+
+    if ($DB:n == 0)
+      option DEFAULT
+    else
+      $run = $run -dbname $DB:$SURVEY_RELSTACK_DB
+      option $DB:$SURVEY_RELSTACK_DB
+    end
+    
+     echo $run
+    command $run
+  end
+
+  # success
+  task.exit    0
+#    echo "Success"
+  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
