#!/bin/bash
source $HOME/.gamerc

usage() {
    exec echo "Usage: $0 <DB_TYPE: ACCOUNTDB / GAMEDB / WORLDDB / SOCIETYDB>"
}

# 參數檢查
[[ $# -lt 1 ]] && usage
DB_TYPE="$1"

if [ "$HOST_NAME" == "TEST" -o "$HOST_NAME" == "SUB" -o "$HOST_NAME" == "SUBMIT" -o "$HOST_NAME" == "DATA" -o "$HOST_NAME" == "DLC" -o "$HOST_NAME" == "TIME1" -o "$HOST_NAME" == "MEDIA" ] || [[ "$HOST_NAME" == *"MERGE"* ]] ; then
    DIRECTORY_NAME="$HOME/common-TEST/db"
else
    DIRECTORY_NAME="$HOME/common/db"
fi

case "${DB_TYPE}" in
    ACCOUNTDB)
        for ACCOUNTDB in $(find $HOME/servers1 -maxdepth 1 -type f -name "setup.ini" -exec grep "^AccountDBName=" {} + | cut -d= -f2); do
            cd $DIRECTORY_NAME; echo ${ACCOUNTDB} | colorize yellow black; $(which perl) db_account_alter :${ACCOUNTDB} &
            $(which vacuumdb) -d ${ACCOUNTDB} --full &
        done
        ;;
    GAMEDB|gamedb)
        for GAMEDB in $(find $HOME/servers* -maxdepth 1 -type f -name "setup.ini" -exec grep "^GameDB=" {} + | cut -d= -f2); do
            cd $DIRECTORY_NAME; echo ${GAMEDB} | colorize yellow black; $(which perl) db_game_alter :${GAMEDB} &
            $(which vacuumdb) -d ${GAMEDB} --full &
        done
        ;;
    WORLDDB|worlddb)
        for WORLDDB in $(find $HOME/servers*/WorldServer* -maxdepth 1 -type f -name "setup.ini" -exec grep "^WorldDBName=" {} + | cut -d= -f2); do
            cd $DIRECTORY_NAME; echo ${WORLDDB} | colorize yellow black; $(which perl) db_world_alter :${WORLDDB} &
            $(which vacuumdb) -d ${WORLDDB} --full &
        done
        ;;
    SOCIETYDB|societydb)
        for SOCIETYDB in $(find $HOME/servers*/SocietyServer* -maxdepth 1 -type f -name "setup.ini" -exec grep "^SocietyDBName=" {} + | cut -d= -f2); do
            cd $DIRECTORY_NAME; echo ${SOCIETYDB} | colorize yellow black; $(which perl) db_society_alter :${SOCIETYDB} &
            $(which vacuumdb) -d ${SOCIETYDB} --full &
        done
        ;;
    *)
        echo "ERROR: Unknown DB_TYPE for ${DB_TYPE}"; usage
        ;;
esac
