#!/bin/sh

PKG_NAME="GoogleDriveClient"
PKG_STATUS_FILE="/etc/zyxel/pkg_conf/status"
PKG_INST_PATH=`grep "${PKG_NAME}" ${PKG_STATUS_FILE} | grep "Installed-Rule" | awk -F":" '{print $2}' | sed 's/\/$//g' | sed 's/ //g'`
CONTROLFILE="${PKG_INST_PATH}/zypkg_conf/info/${PKG_NAME}.control"
UPDATE_SCRIPT="${PKG_INST_PATH}/bin/gdrive_update.sh"
UPDATE_SCRIPT_PID="/var/run/gdrive_update.pid"
CONFIG_DB="${PKG_INST_PATH}/config/${PKG_NAME}/GoogleDrive.db"
SYNC_FILE=".grive_syncing"

clear_sync_flag()
{
	ACCOUNT_TABLE_EXIST=`sqlite3 ${CONFIG_DB} "SELECT COUNT(*) FROM sqlite_master WHERE type='table' and name='Account_Info'"`
	if [ $ACCOUNT_TABLE_EXIST -ne 0 ]; then
		ACCOUNT_COUNT=`sqlite3 ${CONFIG_DB} "SELECT COUNT(*) FROM Account_Info"`
		if [ $ACCOUNT_COUNT -ne 0 ]; then
			for index in `seq 1 $ACCOUNT_COUNT`; do
				SYNC_PATH=`sqlite3 ${CONFIG_DB} "SELECT sync_path FROM Account_Info ORDER BY rowid ASC LIMIT 1 OFFSET $(($index-1))"`
				if [ -f "${SYNC_PATH}/${SYNC_FILE}" ]; then
					cd "${SYNC_PATH}"
					cat ${SYNC_FILE} | xargs rm -f
					rm -f ${SYNC_FILE}
				fi
			done
		fi
	fi
}

if [ "$1" == "startup" ]; then
	clear_sync_flag
	start-stop-daemon -b -S -N 5 -m -p ${UPDATE_SCRIPT_PID} -a ${UPDATE_SCRIPT} -- startup
elif [ "$1" == "shutdown" ]; then
	start-stop-daemon -K -p ${UPDATE_SCRIPT_PID}
	rm -f ${UPDATE_SCRIPT_PID}
	ps | grep [g]drive_control.sh | awk '{print $1}' | xargs kill -9
	ps | grep [g]rive | awk '{print $1}' | xargs kill -9
	clear_sync_flag
elif [ "$1" == "getlink" ]; then
	echo "gDriveWin"
elif [ "$1" == "status" ]; then
	echo "Built-in"
elif [ "$1" == "version" ]; then
	VERSION=`grep "Version:" ${CONTROLFILE} | awk -F"zypkg" '{print $2}'`
	return ${VERSION}
fi

exit 0
