#!/bin/bash
source $HOME/.gamerc
[ "$2" == "" ] && exec echo "Usage: $0 <environment> <target_world_id> <source_world_id1> [source_world_id2 ...]"

# 第一個參數: 環境
environment="$1"
shift

# 第二個參數：target_world_id
target_world_id="$1"
shift

# 其餘參數：source_world_ids
source_world_ids="$*"

WAIT_INTERVAL=60   # waitdone 模組每次檢查間隔秒數
for world_id in ${source_world_ids}; do
    SET_ID=$(( ${world_id} / 100 ))
    CGI_CMD="reward_activity+${world_id}+5"        

    if [ "${environment}" == "test" ]; then
        if [ "${SET_ID}" -ge 10 ] && [ "${SET_ID}" -lt 20 ]; then
            MACHINE="MERGE_ASIA"
        elif [ "${SET_ID}" -ge 20 ] && [ "${SET_ID}" -lt 30 ]; then
            MACHINE="MERGE_US"
        elif [ "${SET_ID}" -ge 30 ] && [ "${SET_ID}" -lt 40 ]; then
            MACHINE="MERGE_EU"
        else
            exec echo "Unknown SET_ID ${SET_ID}"
        fi
    elif [ "${environment}" == "live" ]; then
        MACHINE="MS${SET_ID}"
    fi
    
    IP=$(awk -v h="${MACHINE}" '$0 ~ h {print $1}' /etc/hosts)
    PORT=$(ssh ${MACHINE} "grep 'CGIPort' ${HOME}/servers${SET_ID}/MissionServer${SET_ID}/setup.ini | sed 's/CGIPort=//'")
    
    echo "Machine: ${MACHINE} => IP: ${IP}, Mission: MS${SET_ID}, World: WS${world_id}, Port: ${PORT}"
    echo "curl http://127.0.0.1/cgi-bin/CGIAgent.fcgi?${IP},${PORT},0KjaM85BjfqjA,${CGI_CMD}"
    #curl http://127.0.0.1/cgi-bin/CGIAgent.fcgi?${IP},${PORT},0KjaM85BjfqjA,${CGI_CMD}

    while :; do
        all_done=1   # 1 = 全部完成；0 = 尚有未完成

        if ssh "WS${world_id}" "cd $HOME/servers${SET_ID}/WorldServer${world_id}; grep -q ',,reward_activity 5' GM${world_id}.log.* 2>/dev/null"; then
        else
            all_done=0
        fi
    done

    if [ "$all_done" -eq 1 ]; then
        echo "==== ALL LISTS HAVE ',Done' IN Test.log*. ===="
        break
    fi

    echo "==== Not all lists finished. Sleep ${WAIT_INTERVAL} seconds then re-check... ===="
    sleep "$WAIT_INTERVAL"            
    echo
done
