
#!/bin/sh
# File	: scripts_framework.sh
# By	: Maarten.deBoer@Atos.net, 121011
# Subject	: Framework (standard part) of a script
# set -x
PGM="`basename $0|cut -d\. -f1`"
VERSION="0.1" 
TMP="/tmp/${PGM}.$$"
MAIL=""
MAILFILE="${TMP}.mailfile"
MAILTO="maarten.deboer@atos.net"
HOSTNAME="`hostname|cut -d\. -f1`"
FILERS="${HOME}/etc/filers"
SSH="/usr/bin/ssh -n"
DATE="`date +%Y-%m-%d`"
DATI="`date +%Y-%m-%d_%H-%M`"
SSH="/usr/bin/ssh -n"
FILTER="[1234567890*]"
LOG="${HOME}/log/${PGM}.log"
MAXLOGSIZE=1024   # In K's
USD=""
CSV="${PGM}_${DATI}_${HOSTNAME}.csv"

# Functions
USAGE()
{
  echo "Usage: ${PGM} <options>"
  echo "  Version: ${VERSION}"
  echo "  options     :"
  echo "    -m|--mail : do send Mail"
  echo "    -e|--etc  : Etc/filers-file (${FILERS})"
  echo "    -f        : Filter filername (${FILTER})"
  echo "    -h|--help : this Help"
  echo "    -V        : show Version"
  echo "    -x        : set -x"
  echo "    --mailto  : change MAILTO address & do send mail (${MAILTO})"
## MAIN
# Check options
if [ $# -eq 0 ]; then
  echo "No option(s) given. So not to know what to do. Exiting..."; echo; USAGE; exit 1
fi
while [ $# -gt 0 ]
  do
  case $1 in
    -f) FILTER=$2; shift ;;
    -m | --mail) MAIL=1 ;;
    -e | --etc) FILERS=$2; shift ;;
    --mailto) MAILTO=$2; MAIL=1; shift ;;
    -u | --usd) USD=1;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VERSION}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known. Exiting..."; echo; USAGE; exit 1 ;;
  esac
    shift
done

echo "`date` ${PGM} (v$VERSION) started (LOGNAME=${LOGNAME})."|tee -a $LOG
echo "ETC=${ETC}"
echo "FILTER=${FILTER}"
echo "MAIL=${MAIL}"
echo "MAILTO=${MAILTO}"

touch ${TMP}
# Check & move LOG-file if longer then max.
LOGSIZE=`du -ka $LOG | cut -f1`
if [ $LOGSIZE -ge $MAXLOGSIZE ]; then
  mv $LOG $LOG.old
  touch $LOG
fi

echo "# Filer ; x ; y ; z ; " > ${TMP}

# Start filer (loop)
for FILER in `cat ${FILERS}|grep -v \^#|awk -F\; '{print $1}'|sort|grep ${FILTER}`
do
  echo "" | tee -a ${TMP}
  echo -n "${FILER};"|tee -a ${TMP}


  echo ";" >> ${TMP}
done  # for FILER

# Mail the info
if [ ${MAIL} ]; then
  cat ${TMP}|uuencode ${CSV}|mailx -s ":${HOSTNAME}: ${PGM} [${PGM} v${VERSION}]" ${MAILTO}
  echo "`date` ${PGM}: Mailed to ${MAILTO}."|tee -a ${LOG}
fi  # if [ ${MAIL} ]

# Cleanup
rm ${TMP}
echo "`date` ${PGM} (v$VERSION) finished."|tee -a $LOG
exit 0

