#!/bin/bash
source $HOME/.gamerc
[ "$2" == "" ] && exec echo "Usage: $0 <MERGE_DIRECOTRY> <PATCH_VERSION_1> <PATCH_VERSION_2> ..."

PATCH_ROOT_DIRECTORY="$HOME/patch"
#PATCH_ROOT_DIRECTORY="/tmp/patch"
MERGE_DIRECTORY="$1"
TEMP_MERGE_DIRECTORY="${PATCH_ROOT_DIRECTORY}/${MERGE_DIRECTORY}"
ARGUMENTS_CNT="$#"

rm -rf ${TEMP_MERGE_DIRECTORY}
mkdir -p ${TEMP_MERGE_DIRECTORY}

for directory in $(seq 2 ${ARGUMENTS_CNT}); do
	patch=$(eval "echo \${$directory}")

	PATCH_DIRECTORY="$PATCH_ROOT_DIRECTORY/$patch"
    echo "PD => ${PATCH_DIRECTORY}"
	if [ ! -d "${PATCH_DIRECTORY}" ]; then
		exec echo "ERROR: Wrong patch version name ($patch) for directory, please check it again."
	else
	    EXTENSION="tar"
        shopt -s nullglob  # Avoids literal pattern if no match
        files=("${PATCH_DIRECTORY}"/*.${EXTENSION})
        if [ ${#files[@]} -gt 0 ]; then
            rm -rf ${TEMP_MERGE_DIRECTORY}/FullFileList_*.txt

		    CLIENT_PATCH_DIRECTORY=$(basename ${PATCH_DIRECTORY}/*.${EXTENSION} | sed "s/.${EXTENSION}//")
		    CLIENT_PATCH_TARBALL=$(basename ${PATCH_DIRECTORY}/*.${EXTENSION})

            echo "CF => ${CLIENT_PATCH_TARBALL}"
            #echo "${PATCH_DIRECTORY} => ${CLIENT_PATCH_TARBALL}"

            mkdir -p ${PATCH_ROOT_DIRECTORY}/tmp
		    tar xf ${PATCH_DIRECTORY}/${CLIENT_PATCH_TARBALL} -C ${PATCH_ROOT_DIRECTORY}/tmp
            cp -arf ${PATCH_DIRECTORY}/FullFileList_*.txt ${PATCH_ROOT_DIRECTORY}/tmp/.
		    cp -arf ${PATCH_ROOT_DIRECTORY}/tmp/* ${TEMP_MERGE_DIRECTORY}
		    rm -rf ${PATCH_ROOT_DIRECTORY}/tmp
        fi
	fi
done

cd $TEMP_MERGE_DIRECTORY
DATETIME="$(/bin/date +%Y%m%d%H%M%S)"
MERGE_CLIENT_PATCH_TARBALL="${DATETIME}.${EXTENSION}"
tar cvzf $MERGE_CLIENT_PATCH_TARBALL FileList*.txt nfs
rm -rf FileList*.txt nfs
