colly_wyx
2018-04-27 74adf3a72663f151dc2c1b87ecb4ea4b0e080a50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/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 ""