#!/bin/tcsh

if ($#argv != 3) then
  echo "USAGE: mkwarps (filter) (pages/paths) (test/commit)"
  echo " filter: i.00000 or z.00000"
  exit 2
endif

# the skycell list is generated within dvo:
#
# dvo: catdir /local/ipp/gpc1/tess/CFIS.V0/
# dvo: skyregion {8*15} {9*15} 38 40
# dvo: output skycells.txt
# dvo: imlist
# dvo: output stdout

set skycellList = "skycells.nep.txt"

set filter = "$1"

if (("$2" != "pages") && ("$2" != "paths") && ("$2" != "fix")) then
  echo "select either fix, pages or paths"
  exit 2
endif

set Ncells = 2
if ("$3" == "commit") then
  set Ncells = 1000000
endif

## generate the *.paths files for each skycell.
if (("$2" == "paths") || ("$2" == "fix")) then
  set level1 = "warps.$filter"
  set wdirs1 = "skycells/$level1"
  mkdir -p $wdirs1

  # remove the "head" bit when ready:
  foreach skycell (`cat $skycellList | awk '{print $2}' | head -n $Ncells`)
    echo $skycell

    set projcell = `echo $skycell | awk -F. '{printf "proj.%s\n", $2}'`
    set level2 = $level1/$projcell
    set wdirs2 = "skycells/$level2"
    mkdir -p $wdirs2

    # skip if the output file exists?
    if ("$2" == "paths") then
      if (-e $wdirs2/$skycell.paths) continue
      get.warp.paths gpc1 $skycell $filter > $wdirs2/$skycell.paths
    else
      echo mv $skycell.paths $wdirs2/$skycell.paths
    endif

  end
  exit 0
endif

## generate the web pages
set level1 = "warps.$filter"
set wdirs1 = "webpages/$level1"
set pages1 = "$wdirs1/index.html"
mkdir -p $wdirs1
echo $pages1

# level 1 content:
echo "<html><head><body>" > $pages1

# remove the "head" bit when ready:
foreach skycell (`cat $skycellList | awk '{print $2}' | head -n $Ncells`)

  # echo $skycell
  set projcell = `echo $skycell | awk -F. '{printf "proj.%s\n", $2}'`
  set sdirs2 = "skycells/$level1/$projcell"

  set level2 = $level1/$projcell/$skycell
  set wdirs2 = "webpages/$level2"
  set pages2 = "$wdirs2/index.html"

  mkdir -p $wdirs2
  echo $pages2

  # level 1 content:
  echo "<a href=$projcell/$skycell/index.html> $skycell </a><br>" >> $pages1

  # level 2 content:
  echo "<html><head><body>" > $pages2

  foreach path_base (`awk '(NR > 1){print $5}' $sdirs2/$skycell.paths`)

    # echo $path_base
    set outbase = `basename $path_base`

    set level3 = $level2/$outbase
    set wdirs3 = "webpages/$level3"
    set pages3 = "$wdirs3/index.html"
    mkdir -p $wdirs3
    echo $pages3

    # level 2 content:
    echo "<a href=$outbase/index.html> $outbase </a><br>" >> $pages2

    # level 3 content:
    echo "<html><head><body>" > $pages3

    foreach ext (cmf fits mask.fits wt.fits psf)
      set nebname = $path_base.$ext
      set nebbase = `basename $nebname`
      if (-e $wdirs3/$nebbase) then
         echo "<a href=$nebbase> $nebbase </a><br>" >> $pages3
         continue
      endif
      set realname = `neb-locate -p $nebname`
      if ("$realname" == "") then
        echo "skipping $nebname"
        continue
      endif
      ln -s $realname $wdirs3/$nebbase
      echo "<a href=$nebbase> $nebbase </a><br>" >> $pages3
    end
    echo "</html></head></body>" >> $pages3
  end
  echo "</html></head></body>" >> $pages2
end

echo "</html></head></body>" >> $pages1
