#!/bin/bash

writefile () {
  FILE=$1
  shift
  echo "$*" >> $FILE
}

#set -xv

SRVDIR=/var/www/htdocs/pupman.com
ARCHDIR=listarchives
BASEDIR=${SRVDIR}/${ARCHDIR}
YEAR=$(date +%Y)
MONTH=$(date +%b)

while getopts ":y:" opt; do
  case $opt in
    y ) YEAR=$OPTARG
        ;;
    \? ) echo "Usage: $0 [year]"
  esac
done

HTMLFILE=${BASEDIR}/${YEAR}idx.php

if [ ! -e ${BASEDIR}/${YEAR} ]; then
  mkdir ${BASEDIR}/${YEAR}
  chown nobody:nobody ${BASEDIR}/${YEAR}
fi

if [ ! -e $YEAR/$MONTH ]; then
  mkdir -p ${BASEDIR}/${YEAR}/${MONTH}
  chown nobody:nobody ${BASEDIR}/${YEAR}/${MONTH}
fi

echo "Writing $HTMLFILE"
echo >$HTMLFILE
writefile $HTMLFILE '<!DOCTYPE html>'
writefile $HTMLFILE '<!DOCTYPE html>'
writefile $HTMLFILE '<html>'
writefile $HTMLFILE "<head><title>/${ARCHDIR}/${YEAR} List Archives</title>"
writefile $HTMLFILE '<style type="text/css" media="screen"> @import url("/menuh.css"); </style>'
writefile $HTMLFILE '<link rel="stylesheet" href="/mainStyle.css" type="text/css">'
writefile $HTMLFILE '<!--[if lt IE 7]>'
writefile $HTMLFILE '<style type="text/css" media="screen">'
writefile $HTMLFILE '#menuh{float:none;}'
writefile $HTMLFILE 'body{behavior:url(csshover.htc); font-size:100%;}'
writefile $HTMLFILE '#menuh ul li{float:left; width: 100%;}'
writefile $HTMLFILE '#menuh a{height:1%;font:bold 0.7em/1.4em arial, sans-serif;}'
writefile $HTMLFILE '</style>'
writefile $HTMLFILE '<![endif]-->'
writefile $HTMLFILE '</head>'
writefile $HTMLFILE '<body>'
writefile $HTMLFILE "<%"
writefile $HTMLFILE '  $dir = ".";'
writefile $HTMLFILE "  include 'menu.php'"
writefile $HTMLFILE "%>"
writefile $HTMLFILE "<center><H3>${YEAR} List Archives</H3></center>"
writefile $HTMLFILE "<ul>"

#
# Make a table of threads and date files.
writefile $HTMLFILE '<div class="ArchIdxTable">'
writefile $HTMLFILE '  <table>'
writefile $HTMLFILE "    <tr>"
#writefile $HTMLFILE "      <th>Month</th>"
writefile $HTMLFILE "      <th>Message List By Thread</th>"
writefile $HTMLFILE "      <th>Message List By Date</th>"
writefile $HTMLFILE "    </tr>"

for i in $(ls -tr ${BASEDIR}/${YEAR} | sort -M); do
  #
  # Look for php or html thread files with a preference for php files
  writefile $HTMLFILE "  <tr>"
#  writefile $HTMLFILE "    <td>$i</td>"
  if [ -e "${BASEDIR}/${YEAR}/${i}/threads.php" -o -e "${BASEDIR}/${YEAR}/${i}/threads.html" ]; then
    FILE=$(basename $(ls ${BASEDIR}/${YEAR}/${i}/threads.* | tail -n 1))
    writefile $HTMLFILE "    <td><a href="/${ARCHDIR}/${YEAR}/${i}/$FILE">${i}</a></td>" 
  else 
    writefile $HTMLFILE "    <td></td>"
  fi
  if [ -e "${BASEDIR}/${YEAR}/${i}/maillist.php" -o -e "${BASEDIR}/${YEAR}/${i}/maillist.html" ]; then
    FILE=$(basename $(ls ${BASEDIR}/${YEAR}/${i}/maillist.* | tail -n 1))
    writefile $HTMLFILE "    <td><a href="/${ARCHDIR}/${YEAR}/${i}/$FILE">${i}</a></td>"
  else 
    writefile $HTMLFILE "    <td></td>"
  fi
  writefile $HTMLFILE "  </tr>"
done

writefile $HTMLFILE "  <tr>"
writefile $HTMLFILE "<td columnspan=2><a href=/${ARCHDIR}/${YEAR}.zip target="view_window">Zipped archives</a></td>"
writefile $HTMLFILE "  </tr>"

writefile $HTMLFILE "</table>"
writefile $HTMLFILE "</div>"

echo "</ul>" >> $HTMLFILE
echo '' >> $HTMLFILE
echo "<% include 'shell_foot.php' %>" >> $HTMLFILE
echo '' >> $HTMLFILE
echo '</body>' >> $HTMLFILE
echo '</html>' >> $HTMLFILE

#
# Make the zip file
#
cd $BASEDIR
zip -q -r ${YEAR}.zip ${YEAR}
