Index: trunk/ippTasks/dist.pro
===================================================================
--- trunk/ippTasks/dist.pro	(revision 27550)
+++ trunk/ippTasks/dist.pro	(revision 27561)
@@ -92,17 +92,42 @@
 end
 
+macro get.host.for.component
+    if ($0 != 3)
+        echo "USAGE: get.host.for.component (componentID) (varname)"
+        break
+    end
+    local component host varname
+    $component = $1
+    $varname = $2
+    substr $component 0 3 COMP_HEAD
+    if ("$COMP_HEAD" == "sky")
+        book getword ipphosts dist_skycell count -var count
+        local j myValue skyhash
+        list word -splitbychar . $component
+        $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
+        book getword ipphosts dist_skycell $skyname -var host
+    else
+        book getword ipphosts dist_chip $component -var host
+    end
+    $$varname = $host
+end
 
 macro set.dist.workdir.by.component
-    # component template default varname
-    if ($0 != 6)
-        echo "USAGE: set.workdir.by.component (stage_id) (componentID) (template) (default) (varname)"
+    if ($0 != 5)
+        echo "USAGE: set.workdir.by.component (stage_id) (componentID) (template) (varname)"
         break
     end
     local host stage_id component default template varname length start count selector component_id random_number
+
     $stage_id = $1
     $component = $2
     $template = $3
-    $default = $4
-    $varname = $5
+    $varname = $4
     if ("$template" == "NULL")
         echo "ERROR: WORKDIR template not set."
@@ -111,37 +136,31 @@
     book getword ipphosts distribution count -var count
     if ("$count" == "NULL")
-        echo "ERROR: disthosts is empty"
-        break
-    end
+        echo "ERROR: distributin hosts list is empty"
+        break
+    end
+    $host = "foo"
     if ("$component" == "exposure") 
-        $selector = $stage_id
+        # take last two letters of selector
+        # treat it as an integer and use modulous of length of distribution hosts
+        # to compute an index into the host table
+        strlen $stage_id length
+        $start = $length - 2
+        substr $stage_id $start 2 index
+        $component_id = $index % $count
+        book getword ipphosts distribution $component_id -var myhost
     else
-        $selector = $component
-    end
-    #echo selector is $selector
-    # take last two letters of selector
-    # treat it as an integer and use modulous of length of distribution hosts
-    # to compute an index into the host table
-    strlen $selector length
-    $start = $length - 2
-    substr $selector $start 2 index
-    $component_id = $index % $count
-
-    #echo component_id is $component_id
-
-    book getword ipphosts distribution $component_id -var host
-    if ("$host" == "NULL")
+        get.host.for.component $component myhost
+    end
+
+    if ("$myhost" == "NULL")
         echo "ERROR: failed to find host for $component"
-        $host = $default
-    end
-
-    #echo host is $host
-
-    strsub $template @HOST@ $host -var $varname
+        break
+    end
+
+    strsub $template @HOST@ $myhost -var $varname
 
     #echo template is $template
     #echo outdir is $$varname
 end
-
 
 
@@ -263,5 +282,5 @@
 
 
-    set.dist.workdir.by.component $DIST_STAGE_ID $COMPONENT $OUTDIR_TEMPLATE ipp047 OUTDIR 
+    set.dist.workdir.by.component $DIST_STAGE_ID $COMPONENT $OUTDIR_TEMPLATE OUTDIR 
     if ("$OUTDIR" == "NULL")
         echo ERROR failed to set workdir for $COMPONENT
Index: trunk/ippTasks/ipphosts.mhpcc.config
===================================================================
--- trunk/ippTasks/ipphosts.mhpcc.config	(revision 27550)
+++ trunk/ippTasks/ipphosts.mhpcc.config	(revision 27561)
@@ -216,4 +216,5 @@
 END
 
+# this list is no longer used
 ipphosts METADATA
   camera STR distribution
@@ -246,2 +247,137 @@
  25      STR ipp052
 END
+
+ipphosts METADATA
+  camera STR dist_chip
+  count S32   60
+
+#  XY01  STR  ipp014
+#  XY02  STR  ipp014
+  XY01  STR  ipp047
+  XY02  STR  ipp047
+  XY03  STR  ipp038
+  XY04  STR  ipp038
+
+  XY05  STR  ipp023
+  XY06  STR  ipp023
+  XY10  STR  ipp039
+  XY11  STR  ipp039
+
+  XY12  STR  ipp024
+  XY13  STR  ipp024
+  XY14  STR  ipp040
+  XY15  STR  ipp040
+
+  XY16  STR  ipp026
+  XY17  STR  ipp026
+  XY20  STR  ipp041
+  XY21  STR  ipp041
+
+  XY22  STR  ipp042
+  XY23  STR  ipp042
+  XY24  STR  ipp043
+  XY25  STR  ipp043
+
+  XY26  STR  ipp028
+  XY27  STR  ipp028
+  XY30  STR  ipp044
+  XY31  STR  ipp044
+
+  XY32  STR  ipp029
+  XY33  STR  ipp029
+  XY34  STR  ipp045
+  XY35  STR  ipp045
+
+  XY36  STR  ipp030
+  XY37  STR  ipp030
+  XY40  STR  ipp046
+  XY41  STR  ipp046
+
+  XY42  STR  ipp031
+  XY43  STR  ipp031
+  XY44  STR  ipp047
+  XY45  STR  ipp047
+
+  XY46  STR  ipp032
+  XY47  STR  ipp032
+  XY50  STR  ipp048
+  XY51  STR  ipp048
+
+  XY52  STR  ipp033
+  XY53  STR  ipp033
+  XY54  STR  ipp049
+  XY55  STR  ipp049
+
+  XY56  STR  ipp034
+  XY57  STR  ipp034
+  XY60  STR  ipp050
+  XY61  STR  ipp050
+
+  XY62  STR  ipp035
+  XY63  STR  ipp035
+  XY64  STR  ipp051
+  XY65  STR  ipp051
+
+  XY66  STR  ipp036
+  XY67  STR  ipp036
+  XY71  STR  ipp052
+  XY72  STR  ipp052
+
+  XY73  STR  ipp015
+  XY74  STR  ipp015
+  XY75  STR  ipp025
+  XY76  STR  ipp025
+END
+
+ipphosts METADATA
+  camera STR dist_skycell
+  count S32  46
+  sky00 STR  ipp006
+  sky01 STR  ipp007
+  sky02 STR  ipp008 
+  sky03 STR  ipp009
+  sky04 STR  ipp010
+  sky05 STR  ipp011
+  sky06 STR  ipp012
+  sky07 STR  ipp013
+#  sky08 STR  ipp014
+  sky08 STR  ipp047
+  sky09 STR  ipp015
+#  sky10 STR  ipp016
+  sky10 STR  ipp042
+  sky11 STR  ipp017
+  sky12 STR  ipp018 
+  sky13 STR  ipp019
+  sky14 STR  ipp020
+  sky15 STR  ipp021
+  sky16 STR  ipp023
+  sky17 STR  ipp024
+  sky18 STR  ipp025
+  sky19 STR  ipp026
+  sky20 STR  ipp027
+  sky21 STR  ipp028
+  sky22 STR  ipp029 
+  sky23 STR  ipp030
+  sky24 STR  ipp031
+  sky25 STR  ipp032
+  sky26 STR  ipp033
+  sky27 STR  ipp034
+  sky28 STR  ipp035
+  sky29 STR  ipp036
+  sky30 STR  ipp038
+  sky31 STR  ipp039
+  sky32 STR  ipp040 
+  sky33 STR  ipp041
+  sky34 STR  ipp042
+  sky35 STR  ipp043
+  sky36 STR  ipp044
+  sky37 STR  ipp045
+  sky38 STR  ipp046
+  sky39 STR  ipp047
+  sky40 STR  ipp048
+  sky41 STR  ipp049
+  sky42 STR  ipp050 
+  sky43 STR  ipp051
+  sky44 STR  ipp052
+  sky45 STR  ipp053
+END
