:
#!/bin/sh
#
# bussit
#
# T{m{ ohjelma tulostaa bussiaikatauluja
# Tulostettavat bussit luetaan environmentista $BUSSIT, oletuksena "102 192"
# Esim.
#     setenv BUSSIT "102 192 194 195 505a 505b 31 34"
#     setenv BUSSIT "`bussit -q`"
# Aikatauluja etsit{{n hakemistosta $AIKAT, oletus systeemin hakemisto
# Esim.
#     setenv AIKAT ~/aikat
# Argumentit:
#  -a arkip{iv{ (vaikka onkin esim. sunnuntai)
#  -l lauantaiaikataulut
#  -s sunnuntaiaikataulut
#   x lis{ksi bussi x (oletusbussien alkuun)
#  +x lis{ksi bussi x (loppuun)
#   q kysyt{{n mahdolliset bussit (mahd. omat)
#   Q kysyt{{n mahdolliset bussit (aina systeemin bussit)
#  -t tunnit ovatkin t
#  -m minuutit ovatkin m
#  -d debug
#
# Esa Turtiainen, 30.3.1987

PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/lib

apubussi=`path apubussi`
aikathakem=/usr/local/lib/aikat
oletusbussit="102 192"
tempfile=/tmp/bussit$$

if [ -z "$BUSSIT" ]
then
  BUSSIT="$oletusbussit"
fi
if [ -z "$AIKAT" ]
then
  AIKAT="$aikathakem"
fi

viik=`date +%a`
case $viik in
  Sun) viikstr=Sunnuntai
       viikaikat=sun;;
  Sat) viikstr=Lauantai
       viikaikat=lau;;
  *)   viikstr="Arkip{iv{"
       viikaikat=arki;;
esac
tun=`date +%H`
min=`date +%M`

for i
do
  case $i in
    -s) viikstr=Sunnuntai
        viikaikat=sun
        shift;;
    -l) viikstr=Lauantai
        viikaikat=lau
        shift;;
    -a) viikstr=Arkip\{iv\{
        viikaikat=arki
        shift;;
    +*) BUSSIT=` echo "$BUSSIT $1" | sed 's/+//' `
        shift;;
    -q) /bin/ls "$AIKAT" |
          sed '
            s/.arki//
            s/.lau//
            s/.sun//' |
          uniq |
          tr '\012' ' '
	  echo
        exit;;
    -Q) /bin/ls "$aikathakem" |
          sed '
            s/.arki//
            s/.lau//
            s/.sun//' |
          uniq |
          tr '\012' ' '
          echo
        exit;;
    -t) tun=`echo $2`; shift; shift;;
    -t*) tun=`echo $1 | sed 's/-t//'`
        shift;;
    -m) min=`echo $2`; shift; shift;;
    -m*) min=`echo $1 | sed 's/-m//'`
        shift;;
    -d) echo "testing..."
        tempfile=./tempfile
        /bin/rm -f "$tempfile"
        delete=no 
        shift;;
    *)  BUSSIT="$*"
        break;;
  esac
done

echo "$viikstr aikataulut Otaniemest{, $tun:$min"
for bussi in $BUSSIT
do
  aikataulut=`/bin/ls $AIKAT/$bussi*.$viikaikat 2>/dev/null | tr '\012' ' '`
  if [ -z "$aikataulut" ]
  then
    echo $bussi " *** tuntematon"
    continue
  fi
  for aikataulu in $aikataulut
  do
    $apubussi $tun $min $tempfile < $aikataulu
  done
done

if [ -s "$tempfile" ] 
then
  echo "==="
  sort -u "$tempfile"
fi

if [ -z "$delete" ]
then
  /bin/rm -f "$tempfile"
else
  echo "tempfile not removed"
fi

