
#!/bin/sh
# File	: chk_e-bladmuziek.shmaarten
# By	: MaartenDeBoer.nl, 200617, 230731
# Subject	: Script to check (and act) about e-bladmuziek
#
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
MAILTO="maarten@agrarix.nl"
MAIL=""
HOSTNAME=`hostname | cut -d\. -f1`
RCFILE="${HOME}/etc/${PGM}.rc"
ASC="/tmp/${PGM}.asc"
EXCLFILE="${BASEDIR}/etc/${PGM}.excl"
TOEGANGDIR="/toegang"
IFILTER="[?]*"
TFILTER="[?]*"
BFILTER="[?]*"
CSV="/tmp/${PGM}_`date +%Y-%m-%d`.csv"

APPLDIR="${HOME}/e-bladmuziek"
RPT_HTPWD=""
RPT_TITLES=""
RPT_UNAMES=""
CHK_E_DIRS=""
REMOVE_E_DIR=""

HTPWDDIR="${APPLDIR}/htpwd"
SRCDIR="/mnt/nas/DATA/e-bladmuziek/src"
DATADIR="${APPLDIR}/data"

USAGE() 
{ 
  echo "Usage: ${PGM} <options>"
  echo "Options                 : "
  echo "     -e | --empty-dirs  : check Empty-directories"
  echo "     --remove_e_dirs    : REMOVE Empty-directories"
  echo "     -b | --band        : Band-filter (${BFILTER})"
  echo "     -i | --instrument  : Instrument-filter (${IFILTER})"
  echo "     -t | --title         : Title-filter (${TFILTER})"
#  echo "     -f | --force   : Force process of PDF-files"
  echo "     -h | --help        : This help"
  echo "     -m | --mail        : Mail the reports"
  echo "     -r | -rc           : change RCfile (${RCFILE}) (used after options)"
#  echo "     -u | --uname   : report on Username(s)"
#  echo "     --htpwd        : report on HTPassWorDs"
  echo "     --mailto           : change MAILTO address (${MAILTO})"
#  echo "     --titles       : report on Titles"
  echo "     --srcdir           : change SouRCeDIRectory (${SRCDIR})"
  echo "     -V                 : Version"
}                                                            
# If no options, then exit
if [ ${#} -lt 1 ]; then
  USAGE; exit 1
fi
if [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. So, reading ..."|tee -a ${LOG}
  . ${RCFILE}
  sleep 1
fi  # RCFILE 
while [ ${#} -gt 0 ]
do 
  case "${1}" in
    --srcdir)  SRCDIR=${2}; shift ;;
    -h|--help)  USAGE; exit 1 ;;
    -b|--band)  BFILTER="${2}"; shift ;;
    -i|--instrument) IFILTER="${2}"; shift ;;
    -t|--titel) TFILTER="${2}"; shift ;;
    -e|--empty-dirs) CHK_E_DIRS=1 ;;
    --remove_e_dirs) REMOVE_E_DIRS=1 ;;
#    -u|--unames) RPT_UNAMES=1 ;;
    -m|--mail)  MAIL=1 ;;
    --mailto)  MAIL=1; MAILTO="${2}";shift ;;
#    --htpwd)  RPT_HTPWD=1 ;;
#    --titles)  RPT_TITLES=1 ;;
    -r|--rc)  RCFILE="${2}";shift ;;
    -x)  set -x ;;
    -V)  echo "Version=${VER}"; exit 0 ;;
    *) echo "Option ${1} not found." ; USAGE; exit 2 ;;
  esac
  shift
done


echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}                                                                                           
echo "RCFILE=${RCFILE}"
echo "BFILTER=${BFILTER}"
echo "IFILTER=${IFILTER}"
echo "TFILTER=${TFILTER}"
echo "EXCLFILE=${EXCLFILE}"
echo "DATADIR=${DATADIR}"
echo "HTPWDDIR=${HTPWDDIR}"
echo "MAIL=${MAIL}"
echo "MAILTO=${MAILTO}"
echo "NAMEFILE=${NAMEFILE}"
echo "TOEGANGDIR=${TOEGANGDIR}"
echo "SRCDIR=${SRCDIR}"
#echo "RPT_HTPWD=${RPT_HTPWD}"
#echo "RPT_UNAMES=${RPT_UNAMES}"
#echo "RPT_TITLES=${RPT_TITLES}"
echo "CHK_E_DIRS=${CHK_E_DIRS}"
echo "REMOVE_E_DIRS=${REMOVE_E_DIRS}"

sleep 1

if [ ! -d ${SRCDIR} ]; then
  echo "  NO SRCDIR (${SRCDIR}). Exiting ..."|tee -a ${LOG}
  exit 3
fi
# When EXLCudeFILE found. Copy this to TMP-file. Otherwise use an empty one (otherwise grep -vf will fail)
if [ -f ${EXCLFILE} ]; then
  echo "  Exclude-file (${EXCLFILE}) found. Using this."|tee -a ${LOG}
  cp ${EXCLFILE} ${TMP}.excl
  sleep 1
else
  touch ${TMP}.excl
fi



touch ${TMP}

if [ ${CHK_E_DIRS} ]; then
  echo "  Checking Empty Directories ..."|tee -a ${LOG}
  cd "${SRCDIR}"
  ls -1d */|egrep -i "${BFILTER}"|grep -v ${TOEGANGDIR}|sed 's|/||g'|grep -ivf ${TMP}.excl|while read BAND
  do
    echo "    B:${BAND}"
    cd "${SRCDIR}/${BAND}"
    ls -1d */|sed 's|/||g'|grep -i "${IFILTER}"|grep -v ".htm"|grep -ivf ${TMP}.excl|while read INSTR
    do
      echo "      I:${INSTR}"
      cd "${SRCDIR}/${BAND}/${INSTR}"
      ls -1d */|sed 's|/||g'|grep -i "${TFILTER}"|grep -v ".htm"|grep -ivf ${TMP}.excl|while read TITLE
      do
        cd "${SRCDIR}/${BAND}/${INSTR}/${TITLE}"
# Partiture/PDF/MP3 CNT
        PCNT=`ls -1 *.[PpMm][DdPp][Ff3] 2>/dev/null | wc -l`
        echo "        T:${TITLE} (${PCNT})"
        if [ ${PCNT} -eq 0 ]; then
          echo "        Has 0 PDFs : ${SRCDIR}/${BAND}/${INSTR}/${TITLE}"|tee -a ${LOG}
          sleep 1
          if [ ${REMOVE_E_DIRS} ]; then
            cd "${SRCDIR}/${BAND}/${INSTR}"
            rmdir "${TITLE}" 
            EC=${?}
            echo "          DIR ${SRCDIR}/${BAND}/${INSTR}/${TITLE} removed (${EC})"|tee -a ${LOG}
            sleep 1
          fi  # REMOVE_E_DIRS
        fi  # 0
      done  # TITLE
    done  # INTRS
  done  # DIRS

fi  # CHK_E_DIR






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

