
#!/bin/sh
# File	: proc_sh-files_to_db.sh
# By	: Maarten.deBoer@Atos.net
# SUbject	: Script to process SH file into database-files
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$"

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
ETCENV="${BASEDIR}/etc/afsp.env"
LOG="${BASEDIR}/log/${PGM}.log"

INDIR="${BASEDIR}/incomming"
OUT="${BASEDIR}/data/${PGM}.csv"

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

# Proces more files in INDIR
cd ${INDIR}
LASTDIR="`ls -1d 20??-??-??|tail -1`"
cd ${LASTDIR}

# Check DB-dir
if [ ! -d ${BASEDIR}/data/database ]; then
  mkdir ${BASEDIR}/data/database
fi

# Models
echo "model-os-version"
OUT="${BASEDIR}/data/model-version/filer-name-loc-model-os-fw-sn-partner.csv"

# 1st SH-files
ls -1 sh-filer-name-loc-model-os-fw-sn-partner_*.csv | while read FILE
do
  grep ';' ${FILE} 1> /dev/null 
  RC=${?}
# If 0, file has ; 
  if [ ${RC} -eq 0 ]; then
    echo "${FILE} ; ..."
    cat ${FILE}|egrep -v 'Controller|Total'|sort|while read LINE
    do
      NAME="`echo ${LINE}|awk -F\; '{print $1}'`"
      SERNR="`echo ${LINE}|awk -F\; '{print $2}'`"
      MODEL="`echo ${LINE}|awk -F\; '{print $3}'`"
      OSVERSION="`echo ${LINE}|awk -F\; '{print $4}'`"
      PARTNER="`echo ${LINE}|awk -F\; '{print $5}'`"
      LOCATION="`echo ${LINE}|awk -F\; '{print $6}'`"
      CONTACT="`echo ${LINE}|awk -F\; '{print $7}'`"
      if [ "${SERNR}" != "" ]; then
	    DBFILE="${BASEDIR}/data/database/${SERNR}.asc"
	  else
	    DBFILE="${BASEDIR}/data/database/${NAME}.asc"
	  fi  # SERNR
      echo ${MODEL}|egrep '^FAS|^N|^V' 1> /dev/null
      RC=${?}
	  # Right model.
      if [ ${RC} -eq 0 ]; then
        if [ -f ${DBFILE} ]; then
		  # read DBFILE in
		  DB_SERIAL_NUMBER="`grep ^SERIAL_NUMBER ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_CONTROLER_NAME="`grep ^CONTROLER_NAME ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_MODEL_NAME="`grep ^MODEL_NAME ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_OS_VERSION="`grep ^OS_VERSION ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_PARTNER_HOSTNAME="`grep ^PARTNER_HOSTNAME ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_SNMP_CONTACT="`grep ^SNMP_CONTACT ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_SNMP_LOCATION="`grep ^SNMP_LOCATION ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_ASUP_GENERATED_ON="`grep ^ASUP_GENERATED_ON ${DBFILE}|awk -F\= '{print $2}'`"
		  DB_SYSTEM_ID="`grep ^SYSTEM_ID ${DBFILE}|awk -F\= '{print $2}'`"
		  # modify field
		  if [ "${DB_MODEL_NAME}" != "${MODEL}" ]; then
		    DB_MODEL_NAME="${MODEL}"
			echo "DB_MODEL_NAME=${DB_MODEL_NAME}"
			MODIFIED=1
		  fi
		  if [ "${DB_OS_VERSION}" != "${OSVERSION}" ]; then
		    DB_MODEL_NAME="${OSVERSION}"
			echo "DB_OS_VERSION=${DB_OS_VERSION}"
			MODIFIED=1
		  fi
		  if [ "${DB_PARTNER_HOSTNAME}" != "${PARTNER}" ] && [ "${PARTNER}" != "" ]; then
		    DB_SNMP_CONTACT="${PARTNER}"
			echo "DB_PARTNER_HOSTNAME=${DB_PARTNER_HOSTNAME}"
			MODIFIED=1
		  fi
		  if [ "${DB_SNMP_CONTACT}" != "${CONTACT}" ] && [ "${CONTACT}" != "" ]; then
		    DB_SNMP_CONTACT="${CONTACT}"
			echo "DB_SNMP_CONTACT=${DB_SNMP_CONTACT}"
			MODIFIED=1
		  fi
		  if [ "${DB_SNMP_LOCATION}" != "${LOCATION}" ]&& [ "${LOCATION}" != "" ]; then
		    DB_SNMP_LOCATION="${LOCATION}"
			echo "DB_SNMP_LOCATION=${DB_SNMP_LOCATION}"
			MODIFIED=1
		  fi
		else  # no DBFILE, so NEW
		  DB_SERIAL_NUMBER="${SERNR}"
		  DB_CONTROLER_NAME="${NAME}"
		  DB_MODEL_NAME="${MODEL}"
		  DB_OS_VERSION="${OSVERSION}"
		  DB_PARTNER_HOSTNAME="${PARTNER}"
		  DB_SNMP_CONTACT="${CONTACT}"
		  DB_SNMP_LOCATION="${LOCATION}"
		  DB_ASUP_GENERATED_ON=""
		  DB_SYSTEM_ID=""
	      MODIFIED=1
		fi  # -f
		if [ ${MODIFIED} ]; then
          echo "Writing ${DBFILE} ..."
		  echo "SERIAL_NUMBER=${DB_SERIAL_NUMBER}" > ${DBFILE}
		  echo "CONTROLER_NAME=${DB_CONTROLER_NAME}" >> ${DBFILE}
		  echo "MODEL_NAME=${DB_MODEL_NAME}" >> ${DBFILE}
		  echo "OS_VERSION=${DB_OS_VERSION}" >> ${DBFILE}
		  echo "PARTNER_HOSTNAME=${DB_PARTNER_HOSTNAME}" >> ${DBFILE}
		  echo "SNMP_CONTACT=${DB_SNMP_CONTACT}" >> ${DBFILE}
		  echo "SNMP_LOCATION=${DB_SNMP_LOCATION}" >> ${DBFILE}
		  echo "ASUP_GENERATED_ON=" >> ${DBFILE}
		  echo "SYSTEM_ID=" >> ${DBFILE}
  		  echo "LAST_DB_UPDATE_BY=${PGM} v${VER} at `date`" >> ${DBFILE}
		  MODIFIED=""
		fi  # MODIFIED
	  fi  # $RC
    done  # cat
  fi  # if ;
done  # ls -1

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

