
#!/bin/sh
# File	: proc_mail-subjects.sh
# By	: MaartenDeBoer.nl, 210615
# Subject	: Script to process mail subjects for later reminders
#(0.2)	: Add AFTER_1DAT, _1WEEK, _1MONTH
#(0.3)	: ADD -d & rearnge options
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"

DATADIR="${HOME}/data"
SUBJECT_LIST="${DATADIR}/subject-list.csv"
SUBJECT=""
CHECK=""
MAIL=""

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options               :"
  echo "    -h | --help         : this help"
  echo "    -s | --subject      : Subject"
  echo "    -f | --from         : From"
  echo "    -d | --date         : Date (yyyy-mm-dd)"
  echo "    -m | --mail         : Mail"
  echo "    --after_1day   :"
  echo "    --after_1week  :"
  echo "    --after_1month :"
  echo "    -V                  : Version"
  echo "    -x                  : set -x"
}
if [ ${#} -lt 1 ]; then
  echo "  Do NOT know what to do. Exiting ..."
  USAGE
  exit 1
fi
while [ ${#} -ge 1 ]
  do
  case ${1} in
    -h | --help) USAGE; exit 1 ;;
    -s | --subject) SUBJECT=${2}; shift ;;
    -f | --from) FROM=${2}; shift ;;
    --after_1day) CHECK=1;NEW_DATE="-1 day" ;;
    --after_1week) CHECK=1;NEW_DATE="-1 week" ;;
    --after_1month) CHECK=1;NEW_DATE="-1 month" ;;
    -d | --date) CHECK=1;NEW_DATE="${2}"; shift ;;
    -m | --mail) MAIL=1 ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
touch ${TMP}

if [ ! -d ${DATADIR} ]; then
  mkdir ${DATADIR}
  echo "  Dir. ${DATADIR} created."|tee -a ${LOG}
fi

if [ "${SUBJECT}" != "" ]; then
  DATI=`date +%Y-%m-%d-%H-%M-%S`
  echo "${DATI};${FROM};${SUBJECT}" >> ${SUBJECT_LIST}
fi

if [ ${CHECK} ]; then
  CHK_DATE=`date --date="${NEW_DATE}" +%Y-%m-%d`
  echo "  Checking from ${CHK_DATE}"|tee -a ${LOG}
  grep "^${CHK_DATE}" ${SUBJECT_LIST}|while read LINE
  do
    DATI=`echo ${LINE}|awk -F\; '{print $1}'`
    MAILTO=`echo ${LINE}|awk -F\; '{print $2}'`
    MAILSUBJ=`echo ${LINE}|awk -F\; '{print $3}'`
    DATI2=`echo ${DATI}|awk -F\- '{print $1"-"$2"-"$3" "$4":"$5":"$6}'`
    HUMAN_DATE=`date --date="${DATI2}" `
    echo "  Subj:${MAILSUBJ} To:${MAILTO}"
    if [ ${MAIL} ]; then
      echo "Reminder for ${MAILSUBJ} from ${HUMAN_DATE} (${DATI})" | mailx -s "${MAILSUBJ}" ${MAILTO}
      echo "  Send mail to ${MAILTO} about ${MAILSUBJ}"|tee -a ${LOG}
    fi  # {MAIL}
  done
fi  # CHECK

rm ${TMP}
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

