#!/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 ""
|