#!/bin/bash
#===============================================================================
#
#          FILE: localize
#
#         USAGE: localize
#
#   DESCRIPTION: Sync translated ini file to the server and client patch.
#
#       OPTIONS: N/A
#
#  REQUIREMENTS: TestCtrl
#
#         NOTES: 
#
#          BUGS:  ---
#        AUTHOR: rickz (Rick Zhang), xlrickz@gmail.com
#                vincent.tu (Vincent Tu), xvincent.tu@x-legend.com.tw
#       COMPANY: X-LEGEND Entertainment Corp.
#       CREATED: Tue May 31 23:45:02 EDT 2011
#      REVISION: 1.0
#
#          TODO:
#
#===============================================================================

#set -o nounset                              # Treat unset variables as an error
set -m                                       # Enable job control 

source ~/.gamerc

SCRIPT_NAME=$(basename "$0")
LOCK_FILE="/tmp/${SCRIPT_NAME}.lock"

exec 200>"${LOCK_FILE}"
flock -n 200 || {
	    echo "${SCRIPT_NAME} is running. Exiting."
    exit 1
}

[ "$HOST_NAME" == "TEST" -o "$HOST_NAME" == "DATA" ] || exit

[ -f ~/.localize_ctime_id ] || touch ~/.localize_ctime_id

LOCALIZE_DIR_CTIME_OLD="$(cat ~/.localize_ctime_id)"
LOCALIZE_DIR_CTIME_NOW="$(stat -c %Z "$TRANSLATED_INI_UPLOAD_DIR_ID/id_TranslateFileList")"

if [ "$LOCALIZE_DIR_CTIME_OLD" == "$LOCALIZE_DIR_CTIME_NOW" ] ; then

   exec echo "No new translated ini uploaded
force localize to run? please run this command and run localize again:

rm -f ~/.localize_ctime_id
"

else

   # ulog
   UPLOADER="$(sudo tail -1 /var/log/xferlog|awk '{print $7}')"
   echo "Detectd new translation files upload from $UPLOADER" | ulogger $0 Begin

   # Backup current translation files
   ~/bin/ibackup backup translate_id

   # Copy the translation files
   stat -c %Z "$TRANSLATED_INI_UPLOAD_DIR_ID/id_TranslateFileList" > ~/.localize_ctime_id
   for WORLD in $TRANSLATED_INI_APPLY_TO ; do
   	for platform_fullpath in $(find ~/www/$GAME_TYPE-$WORLD/ -maxdepth 1 -mindepth 1 -type d); do
		platform=$(basename ${platform_fullpath})
		if [ ! -d "~/www/$GAME_TYPE-$WORLD/${platform}/translate_data/db_id/" ]; then
			mkdir -p ~/www/$GAME_TYPE-$WORLD/${platform}/translate_data/db_id/
		fi
		cp -axvf $TRANSLATED_INI_UPLOAD_DIR_ID/id_* ~/www/$GAME_TYPE-$WORLD/${platform}/translate_data/db_id/.
	done
   done
   
   echo "Translation files copied to game server directories" | ulogger $0

   echo "TEST server restarted by localize" | ulogger $0 =End=
fi

