#!/bin/sh

. /etc/PG.conf

SYNC_DIR=${DATAPATH}/cfgsync
TMP_DIR=/usr/ramdisk/tmp

CFG_GET=${PGPATH}/bin/cfg_get
RECV_CONF=${SYNC_DIR}/recv.conf
RECV_BKUP_CONF=${SYNC_DIR}/recv_bkup.conf
LOCAL_BKUP_CONF=${SYNC_DIR}/local_bkup.conf
CUR_CONF=${PGETC}/panabit.conf
EVENTFILE=${PGETC}/log/pending_events
ERROR_TMP=${TMP_DIR}/autosync_error.tmp
AUTOSYNC_BKUP_CONF=${PGETC}/autosync_bkup.conf
AUTOSYNC_CONF=${TMP_DIR}/autosync.conf

#mkdir
#SYNC_DIR:
#for local_backup_conf
#and received_backup_conf
[ ! -d ${SYNC_DIR} ] && mkdir -p ${SYNC_DIR}
[ ! -d ${TMP_DIR} ] && mkdir -p ${TMP_DIR}

#touch file
#TMP_DIR
[ ! -e ${ERROR_TMP} ] && touch ${ERROR_TMP}
#SYNC_DIR
[ ! -e ${LOCAL_BKUP_CONF} ] && cp -f ${CUR_CONF} ${LOCAL_BKUP_CONF}

while true;
do
	sleep 1
	if [ -s ${AUTOSYNC_CONF} -o -s ${AUTOSYNC_BKUP_CONF} ]; then
		#read primary information from autosync.conf
		if [ ! -s ${AUTOSYNC_CONF} ]; then
			cp -f ${AUTOSYNC_BKUP_CONF} ${AUTOSYNC_CONF}
		fi
		. ${AUTOSYNC_CONF}
		if [ "${sync_switch}" = "open" ]; then
			if [ "${pridev_ip}" != "" -a "${pridev_admin}" != "" -a \
				"${pridev_pwd}" != "" -a "${sync_inter}" != "" ]; then

				datetime=`date +"%Y.%m.%d %X"`
				echo "${datetime}" > ${ERROR_TMP}
				#download conf 
				msg=`${CFG_GET} ${pridev_ip} ${pridev_admin} ${pridev_pwd} 2>>${ERROR_TMP}`
				downmsg=`echo ${msg} | grep -s "download success"`
				if [ "${downmsg}" != "" ]; then
					if [ -s ${RECV_CONF} ]; then
						endcfg=`cat ${RECV_CONF} | grep -s "ENDCONFIG"`
						if [ "${endcfg}" != "" ]; then
							#backup local conf 
							cp -f ${CUR_CONF} ${LOCAL_BKUP_CONF}

							#backup download conf
							cp -f ${RECV_CONF} ${RECV_BKUP_CONF}

							#import conf
							cp -f ${RECV_CONF} ${DATAPATH}/config/panabit.conf
							echo "import_config yes" >> ${EVENTFILE}
							#detect import success or not
							for loop in 1 2 3 4 5 6 7 8 9 10;
							do
								sleep ${loop}
								[ ! -e ${DATAPATH}/config/panabit.conf ] && break
							done
						fi
					fi
				fi

				sleep ${sync_inter}
			fi
		fi
	fi
done
