
#!/bin/sh
# File  : set_dfm-options.sh
# By    : Maarten.deBoer@AtosOrigin.com, 101208, 130821, 200916
# Subject       : Set DFM options from .CSV file
#set -x
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
CSV="${HOME}/etc/dfm-options.csv"
SET=""

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options:"
  echo "    -e|--etc    : Etc/DFM-options-file (${CSV})"
  echo "    -h | --help : this help"
  echo "    -V          : Version"
  echo "    -x          : set -x"
  echo "    --set       : do SET"
}
# Check options
while [ ${#} -gt 0 ]
  do
  case ${1} in
    --set) SET=1 ;;
    -e | --etc) CSV=${2}; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done
echo "CSV=${CSV}"
echo "SET=${SET}"
sleep 1

touch ${LOG} ${TMP}
echo "`date` ${PGM} v${VER} (using ${CSV}) started"|tee -a ${LOG}
/usr/bin/dfm options list >> ${TMP}

cat ${CSV}|egrep -v '^#|Option|----------'|awk -F\; '{print $2,$3}'|while read OPTION NEWVALUE
do
  CURVALUE=`grep "^${OPTION} " ${TMP}|egrep -v 'Option;Value'|awk '{print $2}'`
echo "OPTION=${OPTION} CURVALUE=${CURVALUE} NEWVALUE=${NEWVALUE}"
  echo -n "."
# When values are not the same, then change (if SET)
  if [ "${CURVALUE}" != "${NEWVALUE}" ]; then
    if [ ${SET} ]; then
      echo ""
      echo "`date` Option;${OPTION} (${CURVALUE})=>${NEWVALUE}"|tee -a ${LOG}
      /usr/bin/dfm options set ${OPTION}=${NEWVALUE}|tee -a ${LOG}
    else
      echo ""
      echo "NO set options;${OPTION}=${CURVALUE})=>${NEWVALUE} (option --set NOT used.)"|tee -a ${LOG}
    fi  # SET
  fi  # "${CUROPTION}" != "${NEWOPTION}"
done

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

