#!/bin/bash
# This script should be called by create-android-project.bat
# or should be runned in linux shell. It can not be runned under
# cygwin.
# Don't modify the script until you know what you do.

# set environment paramters
NDK_ROOT_LOCAL="/home/laschweinski/android/android-ndk-r5"
ANDROID_SDK_ROOT_LOCAL="/home/laschweinski/android/android-sdk-linux_86"

NEED_BOX2D=false
NEED_CHIPMUNK=false
NEED_LUA=false

# try to get global variable
if [ $NDK_ROOT"aaa" != "aaa" ]; then
    echo "use global definition of NDK_ROOT: $NDK_ROOT"
    NDK_ROOT_LOCAL=$NDK_ROOT
fi

if [ $ANDROID_SDK_ROOT"aaa" != "aaa" ]; then
    echo "use global definition of ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT"
    ANDROID_SDK_ROOT_LOCAL=$ANDROID_SDK_ROOT
fi

# parameters passed to .bat or .sh
PARAMS=

print_usage(){
    echo ERROR!!!
    echo usage
    echo "$0(or corresponding bat file on windows) [-b|--box2d] [-c|--chipmunk] [-l|--lua]"
}

check_param(){
    for param in ${PARAMS[@]} 
    do
        case $param in
            -b | --box2d)
                echo using box2d
                NEED_BOX2D=true
                ;;
            -c | --chipmunk)
                echo using chipmunk
                NEED_CHIPMUNK=true
                ;;
            -l | --lua)
                echo using lua
                NEED_LUA=true
                ;;
            -linux)
                // skip it
                ;;
            *)
                print_usage
                exit 1
        esac
    done
    
    if [ $NEED_BOX2D = "true" ]; then
        if [ $NEED_CHIPMUNK = "true" ]; then 
            echo Warning!!!
            echo Use box2d and chipmunk together????
        fi
    fi
}

# check if it was called by .bat file
if [ $# -ge 5 ];then
    if [ $5 = "windows" ];then
        # called by .bat file
        length=`expr $# - 5`
        PARAMS=${@:6:$length}
        check_param
        sh $1/template/android/copy_files.sh $1 $2 $3 $4 $NEED_BOX2D $NEED_CHIPMUNK $NEED_LUA
        exit
    fi
fi

# the bash file should not be called by cygwin
KERNEL_NAME=`uname -s | grep "CYGWIN*"`
if [ $KERNEL_NAME"hi" != "hi" ]; then
    echo "Error!!!"
    echo "Don't run in cygwin. You should run corresponding bat."
    exit
fi

# ok, it was run under linux

# check it was runned in cocos2d-x root
check_path(){
    if [ ! -f create-android-project.sh ];then
        echo Error!!!
        echo Please run in cocos2dx root
        exit
    fi
}

create_android_project(){
    echo "Input package path. For example: org.cocos2dx.example"
    read PACKAGE_PATH
    echo "Now cocos2d-x supports Android 2.2 or upper version"
    $ANDROID_SDK_ROOT_LOCAL/tools/android list targets
    echo "input target id:"
    read TARGET_ID
    echo "input your project name:"
    read PROJECT_NAME
    PROJECT_DIR=`pwd`/$PROJECT_NAME
    
    # check if PROJECT_DIR is exist
    if [ -d $PROJECT_DIR ]; then
        echo "$PROJECT_DIR is exist, please use another name"
        exit
    fi

    # Make project directory
    mkdir $PROJECT_DIR
    # Create Android project inside proj.android
    $ANDROID_SDK_ROOT_LOCAL/tools/android create project -n $PROJECT_NAME -t $TARGET_ID -k $PACKAGE_PATH -a $PROJECT_NAME -p $PROJECT_DIR/proj.android
    $ANDROID_SDK_ROOT_LOCAL/tools/android update project -l ../../cocos2dx/platform/android/java -p $PROJECT_DIR/proj.android
}

check_path
PARAMS=$@
check_param
create_android_project

if [ $0 = "linux" ]; then
    # invoked by create-linux-android-project.sh
    sh `pwd`/template/linux/mycopy_files.sh `pwd` $PROJECT_NAME $NDK_ROOT_LOCAL $PACKAGE_PATH $NEED_BOX2D $NEED_CHIPMUNK $NEED_LUA
else
    # invoke template/android/copy_files.sh
    sh `pwd`/template/android/copy_files.sh `pwd` $PROJECT_NAME $NDK_ROOT_LOCAL $PACKAGE_PATH $NEED_BOX2D $NEED_CHIPMUNK $NEED_LUA
fi

