-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathproject.init.sh
69 lines (62 loc) · 2.06 KB
/
project.init.sh
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
#!/bin/sh
# vendor目录
# 如: /www/vendor/uniondrug/framework/project.init.sh
vendorDir=$(pwd)
# project目录
# 如: /www
cd ../../../
applicationDir=$(pwd)
# framework目录
# 1. make directories
# 2. add '.gitkeep' file
frameworkFolders="app \
app/Controllers \
app/Controllers/Abstracts \
app/Models \
app/Models/Abstracts \
app/Requests \
app/Services \
app/Services/Abstracts \
app/Structs \
config \
docs \
log \
public \
tmp"
for name in ${frameworkFolders} ; do
mkdir -p ${applicationDir}/${name}
echo "${applicationDir}/${name}" > ${applicationDir}/${name}/.gitkeep
done
# make '.gitignore'
gitIgnoreFile="${applicationDir}/.gitignore"
# ignore
if [ ! -e "${gitIgnoreFile}" ] ; then
echo '# ignore' > ${gitIgnoreFile}
echo ".git/" >> ${gitIgnoreFile}
echo "local/" >> ${gitIgnoreFile}
echo "vendor/" >> ${gitIgnoreFile}
echo "composer.lock" >> ${gitIgnoreFile}
echo "*.bak" >> ${gitIgnoreFile}
echo "*.log" >> ${gitIgnoreFile}
fi
# create `public/index.php`
publicFile="${applicationDir}/public/index.php"
if [ ! -e "${publicFile}" ] ; then
echo '<?php' > ${publicFile}
echo 'error_reporting(E_ALL);' >> ${publicFile}
echo '$phalconVersion = phpversion("phalcon");' >> ${publicFile}
echo 'if (!$phalconVersion || version_compare($phalconVersion, "3.2.0") < 0) {' >> ${publicFile}
echo ' echo "Phalcon v3.2.0+ Must Be Installed";' >> ${publicFile}
echo ' exit;' >> ${publicFile}
echo '}' >> ${publicFile}
echo 'if (!file_exists(__DIR__ . "/../vendor/autoload.php")){' >> ${publicFile}
echo ' echo "Composer not installed.";' >> ${publicFile}
echo ' exit;' >> ${publicFile}
echo '}' >> ${publicFile}
echo 'require_once __DIR__ . "/../vendor/autoload.php";' >> ${publicFile}
echo '$container = new Uniondrug\Framework\Container(dirname(__DIR__));' >> ${publicFile}
echo '$container->run(Uniondrug\Framework\Application::class);' >> ${publicFile}
fi
echo "----success----"
echo "project: '${applicationDir}'"
echo "vendor: '${vendorDir}'"