| #!/bin/bash | 
| # | 
| # chmod +x ./phalapi-buildapp | 
| # ln -s /path/to/phalapi-buildapp /usr/bin/phalapi-buildapp | 
| # | 
| # @author dogstar 20150403 | 
| # | 
|   | 
| ## Colors | 
| WARNING='\033[1;33m' | 
| NOTE='\033[1;36m' | 
| SUCCESS='\033[1;32m' | 
| FAILURE='\033[1;35m' | 
| RES='\033[0m' | 
|   | 
| ## Usage | 
| if [ $# -lt 1 ]  | 
| then | 
|     echo "" | 
|     echo -e "${WARNING}Usage:${RES}" | 
|     echo "    $0 <app>" | 
|     echo "" | 
|   | 
|     echo -e "${WARNING}Options:${RES}" | 
|     echo -e "    ${NOTE}app${RES}               Require. The app name you want to create" | 
|     echo "" | 
|   | 
|     echo -e "${WARNING}Demo:${RES}" | 
|     echo "    $0 fun" | 
|     echo  "" | 
|   | 
|     echo -e "${WARNING}Tips:${RES}" | 
|     echo "    After created successfully, you can visit it by http://localhost/path/to/{app}." | 
|     echo  "" | 
|   | 
|     exit 1 | 
| fi | 
|   | 
| ## Env | 
| APP_NAME=$1 | 
| APP_NAME=$(echo "$APP_NAME" | sed 's/\b[a-z]/\u&/g') | 
|   | 
| BASE_PATH=$(cd `dirname $0`; pwd) | 
|   | 
| if [ -d "$BASE_PATH/../$APP_NAME" ] | 
| then | 
|     echo -e "${FAILURE}Error: $APP_NAME exists!${RES}" | 
|     echo "" | 
|     exit 2 | 
| fi | 
|   | 
| echo ""; | 
|   | 
| ## Step 1. Create App | 
| echo "create ${APP_NAME} ..." | 
|   | 
| mkdir -p $BASE_PATH/../$APP_NAME | 
| mkdir -p $BASE_PATH/../$APP_NAME/Api | 
| mkdir -p $BASE_PATH/../$APP_NAME/Domain | 
| mkdir -p $BASE_PATH/../$APP_NAME/Model | 
| mkdir -p $BASE_PATH/../$APP_NAME/Common | 
|   | 
| cp $BASE_PATH/../Demo/Api/Default.php $BASE_PATH/../$APP_NAME/Api/ | 
|   | 
| ## Step 2. Create Tests | 
| echo "create ${APP_NAME} tests ..." | 
| mkdir -p $BASE_PATH/../$APP_NAME/Tests | 
|   | 
| mkdir -p $BASE_PATH/../$APP_NAME/Tests/Api | 
| mkdir -p $BASE_PATH/../$APP_NAME/Tests/Domain | 
| mkdir -p $BASE_PATH/../$APP_NAME/Tests/Model | 
| mkdir -p $BASE_PATH/../$APP_NAME/Tests/Common | 
|   | 
| cp $BASE_PATH/../Demo/Tests/test_env.php $BASE_PATH/../$APP_NAME/Tests | 
| cp $BASE_PATH/../Demo/Tests/Api/Api_Default_Test.php $BASE_PATH/../$APP_NAME/Tests/Api/ | 
| cp $BASE_PATH/../Demo/Tests/phpunit.xml $BASE_PATH/../$APP_NAME/Tests/ | 
|   | 
| ## Step 3. Create Bootstrap | 
| echo "create ${APP_NAME} bootstarp ..." | 
|   | 
| #PUBLIC_APP_NAME=$(echo "$APP_NAME" | sed 's/[A-Z]/\l&/g') | 
| #bugfixed by 阿董 | 
| PUBLIC_APP_NAME=$(echo "$APP_NAME" | tr '[A-Z]' '[a-z]') | 
|   | 
| mkdir -p $BASE_PATH/../Public/$PUBLIC_APP_NAME | 
|   | 
| cp $BASE_PATH/../Public/demo/checkApiParams.php $BASE_PATH/../Public/$PUBLIC_APP_NAME/ | 
| cp $BASE_PATH/../Public/demo/listAllApis.php $BASE_PATH/../Public/$PUBLIC_APP_NAME/ | 
| cp $BASE_PATH/../Public/demo/index.php $BASE_PATH/../Public/$PUBLIC_APP_NAME/ | 
|   | 
| #MacOS support 与GNU SED兼容, bugfixed by x2x4 | 
| sed -i .bk -e "s/Demo/$APP_NAME/g" $BASE_PATH/../Public/$PUBLIC_APP_NAME/*.php | 
| rm -r $BASE_PATH/../Public/$PUBLIC_APP_NAME/*.bk | 
| sed -i .bk -e "s/Demo/$APP_NAME/g" $BASE_PATH/../$APP_NAME/Tests/*.php | 
| rm -r $BASE_PATH/../$APP_NAME/Tests/*.bk | 
|   | 
| echo "" | 
| echo -e "${SUCCESS}OK! ${APP_NAME} has been created successfully!${RES}" | 
| echo "" |