-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbasic_layout
executable file
·77 lines (70 loc) · 1.8 KB
/
basic_layout
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
#! /bin/bash
options="p:m:h"
usage="\n
basic layout ZF generator\n
--------------------------\n
-p(required) the project name\n
-m(required) the module name\n
-h generates a default .htaccess file\n
"
while getopts $options opt; do
case $opt in
p)
projectName="./$OPTARG"
;;
m)
moduleName=$OPTARG
;;
h)
htaccessConfig=1
;;
\?)
echo -e $usage
exit 1;;
esac
done
if [ -z $projectName ]; then
echo -e $usage;
exit 1;
fi
if [ -z $moduleName ]; then
echo -e $usage;
exit 1;
fi
applicationDir="$projectName/application"
moduleDir="$projectName/application/modules/$moduleName"
moduleDirViews="$moduleDir/views"
publicDir="$projectName/public"
#TODO generate configuration throught dependencies
mkdir -p "$applicationDir/config"
mkdir -p "$applicationDir/layouts/scripts"
mkdir -p "$moduleDir/controllers"
mkdir -p "$moduleDir/bootstrap"
mkdir -p "$moduleDir/forms"
mkdir -p "$moduleDir/models"
mkdir -p "$moduleDir/services"
mkdir -p "$moduleDirViews/filters"
mkdir -p "$moduleDirViews/helpers"
mkdir -p "$moduleDirViews/scripts"
mkdir -p "$projectName/build"
mkdir -p "$projectName/data"
mkdir -p "$projectName/library"
mkdir -p "$projectName/tests"
mkdir -p "$publicDir"
mkdir -p "$publicDir/css"
mkdir -p "$publicDir/images"
#htaccess creation
if [ -z $htaccessConfig ]; then
exit 0;
fi
#//TODO check how to disable first space when echoing with -e option
htaccessConfig="
RewriteEngine On\n
RewriteCond %{REQUEST_FILENAME} -s [OR]\n
RewriteCond %{REQUEST_FILENAME} -l [OR]\n
RewriteCond %{REQUEST_FILENAME} -d\n
RewriteRule ^.*$ - [NC,L]\n
RewriteRule !\.(js|ico|gif|png|css|json) index.php [NC,L]
"
touch "$publicDir/.htaccess"
echo -e $htaccessConfig > "$publicDir/.htaccess"