
#!/bin/bash
# File	: mail_data.sh
# By	: MaartenDeBoer.nl
# Subject	: Script to mail (csv-)data [2016-03]
#set -x
#(0.2)	: Add -r(ecursive)
PGM="`basename $0|cut -d\. -f1`"
VER="0.2"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
MAILED="${HOME}/data/${PGM}.mailed"
FILENAME=""
DATE=""
MAILTO="maarten.deboer@atos.net"
FILEPREFIX="domotica"
FILEEXT=".csv"
MAIL=""
UUENCODE="/usr/bin/uuencode"
RECURSIVE=""
TODAY="`date +%Y-%m-%d`"

DATADIR="${HOME}/data"

USAGE()
{
  echo "Usage: ${PGM} [options]"
  echo "Options           : "
  echo "     -d | --date  : Date [YYYY-MM-DD]"
  echo "     -m | --mail  : Mail the file"
  echo "     -r           : Recursive"
  echo "     -h           : This help"
  echo "     -V           : Version"
  echo "     --file-ext   : other FILEEXT (${FILEEXT})"
  echo "     --fileprefix : other FILEPREFIX (${FILEPREFIX})"
  echo "     --datadir    : other DATADIR (${DATADIR})"
  echo "     --mailto     : other MAILTO (${MAILTO})"
}

EXIT="$0 $1 $2 $3 $4 $5 $6 $7 $8 $9"

while [ ${#} -gt 0 ]
do
  case "${1}" in
    '-h')  USAGE; exit 1 ;;
    '-x')  set -x ;;
    '-V')  echo "Version=${VER}" ; exit 1 ;;
    '--file-ext')  FILEEXT=${2}; shift  ;;
    '--fileprefix')  FILEPREFIX=${2}; shift  ;;
    '--datadir')  DATADIR=${2}; shift  ;;
    '-d'|'--date') DATE=${2}; shift  ;;
    '-m'|'--mail') MAIL=1;;
    '-r') RECURSIVE=1;;
    *) echo "Option ${1} not found." ; USAGE; exit 1 ;;
  esac 
  shift
done

echo "`date` ${PGM} v${VER} started. "|tee -a ${LOG}
echo "DATADIR=${DATADIR}"
echo "DATE=${DATE}"
echo "FILENAME=${FILENAME}"
echo "FILEPREFIX=${FILEPREFIX}"
echo "FILE-EXT=${FILEEXT}"
echo "PGM=${PGM}"
echo "VER=${VER}"
echo "UUENCODE=${UUENCODE}"
echo "RECURSIVE=${RECURSIVE}"

# Test for UUENCODE. When not, EC>0
type ${UUENCODE}
EC="$?"
if [ ${EC} -gt 0 ]; then
  echo "  No uuencode found. Exiting ...  "|tee -a ${LOG}
  exit 3
fi

touch ${MAILED} ${LOG}

# Latest file first
FILENAME="`ls -1 ${DATADIR}/${FILEPREFIX}*${DATE}${FILEEXT}|egrep -vf ${MAILED}| head -1`"
echo "  FILENAME=${FILENAME}."|tee -a ${LOG}
if [ "${FILENAME}" == "" ]; then
  echo "  Empty FILENAME. Exiting ...  "|tee -a ${LOG}
  exit 4
fi
if [ ${MAIL} ]; then
  FNAME="`basename ${FILENAME}`"
  cat ${FILENAME}|uuencode ${FNAME}|mailx -s ${FNAME} ${MAILTO}
  echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
# Save filename so not done next time. But not today
  echo ${FNAME}|grep -v ${TODAY}|tee -a ${MAILED}
fi

echo "`date` ${PGM} finished."|tee -a ${LOG}

if [ ${RECURSIVE} ]; then
  ${EXIT}
fi

exit 0

