Index: branches/simtest_nebulous_branches/ippTasks/pantasks.pro
===================================================================
--- branches/simtest_nebulous_branches/ippTasks/pantasks.pro	(revision 25061)
+++ branches/simtest_nebulous_branches/ippTasks/pantasks.pro	(revision 27840)
@@ -1,21 +1,26 @@
 ## pantasks.pro : globals and support macros : -*- sh -*-
 
+# globals that may be modified by the user -- only init if not set
+if ($?NEBULOUS == 0)  	  set NEBULOUS = 0
+if ($?NETWORK == 0)   	  set NETWORK = 1
+if ($?BURNTOOLING == 0)   set BURNTOOLING = 0
+if ($?PARALLEL == 0)  	  set PARALLEL = 1
+if ($?VERBOSE == 0)   	  set VERBOSE = 1
+if ($?LABEL:n == 0)   	  set LABEL:n = 0
+if ($?POLL_LIMIT == 0) 	  set POLL_LIMIT = 32
+if ($?KEEP_FAILURES == 0) set KEEP_FAILURES = 0
+
+if ($?LOGDIR == 0) 
+  $LOGDIR = `pwd`
+  $LOGDIR = $LOGDIR/pantasks_logs
+  mkdir $LOGDIR
+end
+
 # globals used to control system behavior : these should be in uppercase
-$NEBULOUS = 0
-$NETWORK = 1
-$PARALLEL = 1
-$VERBOSE = 1
-$LABEL:n = 0
-$POLLLIMIT = 32
-$LOGDIR = `pwd`
-$LOGDIR = $LOGDIR/pantasks_logs
-mkdir $LOGDIR
-$KEEP_FAILURES = 0
-
 $LOADPOLL = 1.0
 $LOADEXEC = 5.0
 
 $RUNPOLL  = 0.5
-$RUNEXEC  = 1.0
+$RUNEXEC  = 2.5
 
 $EXIT_SUCCESS     = 0
@@ -32,5 +37,5 @@
 
 # very basic values: set these with init.copy.mhpcc
-$default_host     = anyhost
+$default_host     = any
 $workdir_template = `pwd`
 
@@ -147,4 +152,42 @@
 end
 
+macro save.labels
+  if ($0 != 1)
+    echo "USAGE: save.labels"
+    break
+  end
+  if ($?LABEL:n == 0)
+    echo "no labels defined"
+  end
+  if ($LABEL:n == 0)
+    echo "no labels defined"
+  end
+
+  exec rm -f labels.list
+  local i
+  for i 0 $LABEL:n
+    exec echo $LABEL:$i >> labels.list
+  end
+end
+
+macro load.labels
+  if ($0 != 1)
+    echo "USAGE: load.labels"
+    break
+  end
+
+  file labels.list found
+  if (not($found)) 
+    echo "no saved labels in labels.list"
+    return
+  end
+ 
+  list mylabels -x "cat labels.list"
+  local i
+  for i 0 $mylabels:n
+    add.label $mylabels:$i
+  end
+end
+
 macro init.isp
   list DB -add isp
@@ -213,4 +256,5 @@
   chip.on
   camera.on
+  addstar.on
   fake.on
   warp.on
@@ -225,4 +269,5 @@
   chip.off
   camera.off
+  addstar.off
   fake.off
   warp.off
@@ -242,4 +287,5 @@
   module chip.pro
   module camera.pro
+  module addstar.pro
   module fake.pro
   module warp.pro
@@ -265,4 +311,5 @@
       $command = $command $taskarg:$n
     end
+    date -var exitdate
     if ($0 == 2)
       echo ""
@@ -271,4 +318,5 @@
       echo "job host: $JOB_HOSTNAME"
       echo "job dtime: $JOB_DTIME"
+      echo "job exit date: $exitdate"
     else
       echo "command: $command"
@@ -285,5 +333,5 @@
 
     local command i
-    $command = $$1 -limit $POLLLIMIT
+    $command = $$1 -limit $POLL_LIMIT
 
     $$1 = $command
@@ -439,9 +487,9 @@
   end
  
-  $POLLLIMIT = $1
+  $POLL_LIMIT = $1
 end
 
 macro get.poll
-  echo "poll limit: $POLLLIMIT"
+  echo "poll limit: $POLL_LIMIT"
 end
 
@@ -485,5 +533,11 @@
 
   if ("$host" == "NULL")
-    strsub $template @HOST@ $default -var $varname
+    # we are modifying something like /data/@HOST@/foo/bar, 
+    # but some implementations have multiple entries for the same host,
+    # like /data/@HOST@.0/foo/bar.  
+    # try a couple of these first:
+    strsub $template @HOST@.0 $default -var $varname
+    strsub $$varname @HOST@.1 $default -var $varname
+    strsub $$varname @HOST@   $default -var $varname
   else
     strsub $template @HOST@ $host -var $varname
@@ -512,9 +566,18 @@
   book getword ipphosts skycell count -var count
   if ("$count" == "NULL")
-    strsub $template @HOST@ $default -var $varname
+    strsub $template @HOST@.0 $default -var $varname
+    strsub $$varname @HOST@.1 $default -var $varname
+    strsub $$varname @HOST@   $default -var $varname
     return
   end    
 
-  strhash $skycellID $count -var skyhash
+  local j myValue skyhash
+  list word -splitbychar . $skycellID
+  $skyhash = 0
+  for j 0 $word:n
+    inthash $word:$j $count -var myValue
+    $skyhash = $skyhash + $myValue
+  end
+  inthash $skyhash $count -var skyhash
   sprintf skyname "sky%02d" $skyhash
 
@@ -523,5 +586,7 @@
 
   if ("$host" == "NULL")
-    strsub $template @HOST@ $default -var $varname
+    strsub $template @HOST@.0 $default -var $varname
+    strsub $$varname @HOST@.1 $default -var $varname
+    strsub $$varname @HOST@   $default -var $varname
   else
     strsub $template @HOST@ $host -var $varname
@@ -568,5 +633,12 @@
   end    
 
-  strhash $skycellID $count -var skyhash
+  local j myValue skyhash
+  list word -splitbychar . $skycellID
+  $skyhash = 0
+  for j 0 $word:n
+    inthash $word:$j $count -var myValue
+    $skyhash = $skyhash + $myValue
+  end
+  inthash $skyhash $count -var skyhash
   sprintf skyname "sky%02d" $skyhash
 
@@ -624,2 +696,27 @@
   end
 end
+
+macro show.book
+  if ($0 != 2)
+   echo "USAGE: show.book (book)"
+   break
+  end
+
+  book npages $1 -var npages
+  for i 0 $npages
+    book getpage $1 $i -var pagename
+    book listpage $1 $pagename
+  end
+
+  echo "npages: $npages"
+end
+
+macro del.page.from.book
+  if ($0 != 3)
+   echo "USAGE: del.page.from.book (book) (page)"
+   break
+  end
+
+  book delpage $1 $2
+end
+
