Commit cfccef7de7eb64e5175aa5db98bfb1c97aa8a859
0 parents
first commit
Showing
2 changed files
with
273 additions
and
0 deletions
README.md
0 → 100644
1 | +++ a/README.md |
spod-manager.sh
0 → 100755
1 | +++ a/spod-manager.sh | ||
1 | +#!/bin/bash | ||
2 | +######################################################################## | ||
3 | +#SPOD INSTALLATION SCRIPT############################################### | ||
4 | +#FIRST VERSION 29/09/2015############################################### | ||
5 | +######################################################################## | ||
6 | +################OXWALL CONFIGURATION DATA############################### | ||
7 | +CONFIG0=" | ||
8 | +<?php | ||
9 | + | ||
10 | +define('OW_URL_HOME', '" | ||
11 | +CONFIG1="'); | ||
12 | + | ||
13 | +define('OW_DB_HOST', 'localhost'); | ||
14 | +define('OW_DB_PORT', null); | ||
15 | +define('OW_DB_USER', 'root'); | ||
16 | +define('OW_DB_PASSWORD', 'is15rdc'); | ||
17 | +define('OW_DB_NAME', 'oxwall'); | ||
18 | + | ||
19 | +define('OW_DB_PREFIX', 'ow_'); | ||
20 | + | ||
21 | +define('OW_DIR_USERFILES', OW_DIR_ROOT.'ow_userfiles'.DS); | ||
22 | +define('OW_DIR_STATIC', OW_DIR_ROOT.'ow_static'.DS); | ||
23 | +define('OW_URL_STATIC', OW_URL_HOME.'ow_static/'); | ||
24 | +define('OW_URL_USERFILES', OW_URL_HOME.'ow_userfiles/'); | ||
25 | +define('OW_DIR_PLUGINFILES', OW_DIR_ROOT.'ow_pluginfiles/'); | ||
26 | + | ||
27 | +define('OW_PASSWORD_SALT', 'UzYBYBE6yWA4EhaD'); | ||
28 | + | ||
29 | +define('OW_DIR_CORE', OW_DIR_ROOT.'ow_core'.DS); | ||
30 | +define('OW_DIR_INC', OW_DIR_ROOT.'ow_includes'.DS); | ||
31 | +define('OW_DIR_LIB', OW_DIR_ROOT.'ow_libraries'.DS); | ||
32 | +define('OW_DIR_UTIL', OW_DIR_ROOT.'ow_utilities'.DS); | ||
33 | +define('OW_DIR_PLUGIN', OW_DIR_ROOT.'ow_plugins'.DS); | ||
34 | +define('OW_DIR_THEME', OW_DIR_ROOT.'ow_themes'.DS); | ||
35 | +define('OW_DIR_SYSTEM_PLUGIN', OW_DIR_ROOT.'ow_system_plugins'.DS); | ||
36 | +define('OW_DIR_SMARTY', OW_DIR_ROOT.'ow_smarty'.DS); | ||
37 | + | ||
38 | +define('OW_USE_CLOUDFILES', false); | ||
39 | + | ||
40 | +if ( defined('OW_CRON') ) | ||
41 | +{ | ||
42 | + define('OW_DEBUG_MODE', false); | ||
43 | + define('OW_DEV_MODE', false); | ||
44 | + define('OW_PROFILER_ENABLE', false); | ||
45 | +} | ||
46 | +else | ||
47 | +{" | ||
48 | +CONFIG2=" | ||
49 | + define('OW_DEBUG_MODE', false); | ||
50 | + define('OW_DEV_MODE', true); | ||
51 | + define('OW_PROFILER_ENABLE', false); | ||
52 | +}" | ||
53 | +CONFIG3=" | ||
54 | + define('OW_DEBUG_MODE', false); | ||
55 | + define('OW_DEV_MODE', false); | ||
56 | + define('OW_PROFILER_ENABLE', false); | ||
57 | +}" | ||
58 | +############################################################################# | ||
59 | +#Checking if it is root access | ||
60 | +if [ "$EUID" -ne 0 ]; | ||
61 | +then | ||
62 | + echo "Please run as root"; | ||
63 | + exit -1; | ||
64 | +fi | ||
65 | +############################################################################# | ||
66 | +#Checking Apche installation on local machine | ||
67 | +APACHE=$(which apache2) | ||
68 | +if [ -z "$APACHE" ]; then | ||
69 | + echo "Apache server is required." | ||
70 | + exit -2 | ||
71 | +fi | ||
72 | +############################################################################# | ||
73 | +SCRIPT_NAME="spod-manager.sh" | ||
74 | +#Arguments | ||
75 | +OPTIONS=$(getopt -o ha:b:m:n:o:p:q:r:s:w:d: -l help,action:,backup-dir:,mysql-username:,mysql-password:,mysql-address:,spod-git-username:,spod-git-email:,spod-git-password:,spod-git-address:,spod-hostname:,spod-database-version: -- "$@") | ||
76 | + | ||
77 | +if [ $? -ne 0 ]; then | ||
78 | + echo "error in parameters." | ||
79 | + exit -1 | ||
80 | +fi | ||
81 | + | ||
82 | +eval set -- $OPTIONS | ||
83 | +MYSQLHOST="127.0.0.1" | ||
84 | +GITSPOD="service.routetopa.eu:7480" | ||
85 | +BACKUPDIR=$(pwd) | ||
86 | +DB="db_dump/oxwall1709.sql" | ||
87 | +while true; do | ||
88 | + case "$1" in | ||
89 | + -h|--help) | ||
90 | + echo "$SCRIPT_NAME is manager tool for SPOD application of ROUTE-TO-PA European project all rights are reserved. 2015" | ||
91 | + echo " " | ||
92 | + echo "list of arguments:" | ||
93 | + echo "-h, --help show commands help" | ||
94 | + echo "-a, --action=ACTION specify an action install, uninstall, update and backup." | ||
95 | + echo "-m, --mysql-username=username specify the username of mysql (*)." | ||
96 | + echo "-n, --mysql-password=password specify the password of mysql server (*)." | ||
97 | + echo "-o, --mysql-address=address specify the address of mysql server (deafult is localhost)." | ||
98 | + echo "-p, --spod-git-username=user specify the user name of SPOD git server (*)." | ||
99 | + echo "-q, --spod-git-email=email specify the email of SPOD git server (*)." | ||
100 | + echo "-r, --spod-git-password=password specify the passoword of SPOD git server (*)." | ||
101 | + echo "-s, --spod-git-address=address:port specify the SPOD git server (deafult is service.routetopa.eu:7480)." | ||
102 | + echo "-w, --spod-hostname=hostname specify the SPOD host name (example http://spod.routetopa.eu/)." | ||
103 | + echo "-d, --spod-database-version=db specify the SPOD db git path located in db_dump of SPOD git core (example oxwall_v.0.1_antares.sql, deafults is really simple SPOD and Oxwall installation)." | ||
104 | + echo "-b, --backup-dir=DIR specify the directory where store the spod backup (default is current directory)." | ||
105 | + echo "* the arguments is required." | ||
106 | + exit 0; | ||
107 | + ;; | ||
108 | + -a|--action) | ||
109 | + ACTION="$2"; shift | ||
110 | + ;; | ||
111 | + -b|--backup-dir) | ||
112 | + BACKUPDIR="$2"; shift | ||
113 | + ;; | ||
114 | + -m|--mysql-username) | ||
115 | + MYSQLUSERNAME="$2"; shift | ||
116 | + ;; | ||
117 | + -n|--mysql-password) | ||
118 | + MYSQLPASSWORD="$2"; shift | ||
119 | + ;; | ||
120 | + -o|--mysql-address) | ||
121 | + MYSQLHOST="$2"; shift | ||
122 | + ;; | ||
123 | + -p|--spod-git-username) | ||
124 | + GITUSER="$2"; shift | ||
125 | + ;; | ||
126 | + -q|--spod-git-email) | ||
127 | + GITEMAIL="$2"; shift | ||
128 | + ;; | ||
129 | + -r|--spod-git-password) | ||
130 | + GITPASSWORD="$2"; shift | ||
131 | + ;; | ||
132 | + -s|--spod-git-address) | ||
133 | + GITHOST="$2"; shift | ||
134 | + ;; | ||
135 | + -w|--spod-hostname) | ||
136 | + HOSTNAMESPOD="$2"; shift | ||
137 | + ;; | ||
138 | + -d|--spod-database-version) | ||
139 | + DB="$2"; shift | ||
140 | + ;; | ||
141 | + --) shift; break | ||
142 | + ;; | ||
143 | + *) | ||
144 | + echo "unknown option: $1" ; exit 1 ;; | ||
145 | + esac | ||
146 | + shift | ||
147 | +done | ||
148 | + | ||
149 | +############################################################################# | ||
150 | +############################################################################# | ||
151 | +############################################################################# | ||
152 | +############################################################################# | ||
153 | +############################################################################# | ||
154 | +#Script Actions | ||
155 | +if [ -z "$ACTION" ]; | ||
156 | +then | ||
157 | + echo "You must specify a valid action."; | ||
158 | + exit -2; | ||
159 | +fi | ||
160 | +if [ $# -ne 0 ]; then | ||
161 | + echo "unknown option(s): $@"; | ||
162 | + exit 1; | ||
163 | +fi | ||
164 | + | ||
165 | +echo "SPOD MANAGER Action: $ACTION ..." | ||
166 | + | ||
167 | + case "$ACTION" in | ||
168 | + "install") | ||
169 | + if [ -z "$MYSQLUSERNAME" ] || [ -z "$MYSQLPASSWORD" ] || [ -z "$GITUSER" ] || [ -z "$GITEMAIL" ] || [ -z "$GITPASSWORD" ] [ -z "$HOSTNAMESPOD" ]; | ||
170 | + then | ||
171 | + echo "You must specify the mysql password - username; git user - email - password; SPOD hostname in order to unistall SPOD." | ||
172 | + exit -2 | ||
173 | + fi | ||
174 | + git config --global user.name "$GITUSER" | ||
175 | + git config --global user.email "$GITEMAIL" | ||
176 | + cd /var/www | ||
177 | + git init | ||
178 | + git remote add origin http://$GITUSER:$GITPASSWORD@$GITSPOD/isislab/spod-core.git | ||
179 | + git pull origin master | ||
180 | + mkdir /var/www/ow_plugins | ||
181 | + cd /var/www/ow_plugins | ||
182 | + git init | ||
183 | + git remote add origin http://$GITUSER:$GITPASSWORD@$GITSPOD/isislab/spod-plugins.git | ||
184 | + git pull origin master | ||
185 | + mkdir /var/www/ow_themes | ||
186 | + cd /var/www/ow_themes | ||
187 | + git init | ||
188 | + git remote add origin http://$GITUSER:$GITPASSWORD@$GITSPOD/isislab/spod-themes.git | ||
189 | + git pull origin master | ||
190 | + mysql -u $MYSQLUSERNAME -p$MYSQLPASSWORD --host=$MYSQLHOST -e "create database if not exists oxwall;" | ||
191 | + mysql -u $MYSQLUSERNAME -p$MYSQLPASSWORD --host=$MYSQLHOST --database=oxwall < /var/www/db_dump/$DB | ||
192 | + chown www-data:www-data -R /var/www | ||
193 | + rm -f /var/www/ow_includes/config.php | ||
194 | + echo $CONFIG0$HOSTNAMESPOD$CONFIG1$CONFIG2 >> /var/www/ow_includes/config.php | ||
195 | + service apache2 restart | ||
196 | + wget -q -O /dev/null http://localhost/ | ||
197 | + rm -f /var/www/ow_includes/config.php | ||
198 | + echo $CONFIG0$HOSTNAMESPOD$CONFIG1$CONFIG3 >> /var/www/ow_includes/config.php | ||
199 | + CRONCHECK=$(crontab -l); | ||
200 | + if [[ $CRONCHECK == *"http://localhost/ow_cron/run.php"* ]]; | ||
201 | + then | ||
202 | + echo "Cron job already exists"; | ||
203 | + else | ||
204 | + crontab -l | { cat; echo "* * * * * wget -q -O /dev/null http://localhost/ow_cron/run.php"; } | crontab - | ||
205 | + fi | ||
206 | + ;; | ||
207 | + "uninstall") | ||
208 | + if [ -z "$MYSQLUSERNAME" ] || [ -z "$MYSQLPASSWORD" ] ; | ||
209 | + then | ||
210 | + echo "You must specify the mysql password and username to unistall SPOD." | ||
211 | + echo " sudo ./spod-manager.sh -a uninstall -m user -n password" | ||
212 | + exit -2 | ||
213 | + fi | ||
214 | + mysql -u $MYSQLUSERNAME -p$MYSQLPASSWORD --host=$MYSQLHOST -e "drop database oxwall;" | ||
215 | + rm -rf /var/www/* | ||
216 | + rm -rf /var/www/.[^.]* | ||
217 | + crontab -l | sed '/http:\/\/localhost\/ow_cron\/run\.php/d' | crontab - | ||
218 | + ;; | ||
219 | + "backup") | ||
220 | + if [ -z "$MYSQLUSERNAME" ] || [ -z "$MYSQLPASSWORD" ] ; | ||
221 | + then | ||
222 | + echo "You must specify the mysql password and username to unistall SPOD." | ||
223 | + exit -2 | ||
224 | + fi | ||
225 | + service apache2 stop | ||
226 | + | ||
227 | + DATEDIR=$(date +%Y-%m-%d-%N) | ||
228 | + IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}') | ||
229 | + | ||
230 | + mkdir -p $BACKUPDIR/$DATEDIR | ||
231 | + mysqldump -u $MYSQLUSERNAME -p$MYSQLPASSWORD --host=$MYSQLHOST oxwall | gzip > $BACKUPDIR/$DATEDIR/db_backup_spod.sql.gz | ||
232 | + | ||
233 | + mkdir $BACKUPDIR/$DATEDIR/var | ||
234 | + cp -r /var/www $BACKUPDIR/$DATEDIR/var | ||
235 | + service apache2 start | ||
236 | + ;; | ||
237 | + "update") | ||
238 | + if [ -z "$GITUSER" ] || [ -z "$GITEMAIL" ] || [ -z "$GITPASSWORD" ] ; | ||
239 | + then | ||
240 | + echo "You must specify the SPOD git credentials." | ||
241 | + exit -2 | ||
242 | + fi | ||
243 | + git config --global user.name "$GITUSER" | ||
244 | + git config --global user.email "$GITEMAIL" | ||
245 | + if [ -x /var/www/.git ] && [ -x /var/www/ow_plugins ] && [ -x /var/www/ow_themes ]; then | ||
246 | + cd /var/www | ||
247 | + git pull origin master | ||
248 | + | ||
249 | + cd /var/www/ow_plugins | ||
250 | + git pull origin master | ||
251 | + | ||
252 | + cd /var/www/ow_themes | ||
253 | + git pull origin master | ||
254 | + | ||
255 | + service apache2 restart | ||
256 | + wget -q -O /dev/null http://localhost/ow_cron/run.php | ||
257 | + else | ||
258 | + echo "Your SPOD installation is corrupt, please uninstall and istall it again. Your database will be erased." | ||
259 | + exit -2 | ||
260 | + fi | ||
261 | + ;; | ||
262 | + *) | ||
263 | + echo "No valid action found."; | ||
264 | + exit -1; | ||
265 | + ;; | ||
266 | +esac | ||
267 | +############################################################################################## | ||
268 | +############################################################################################## | ||
269 | +############################################################################################## | ||
270 | +############################################################################################## | ||
271 | +############################################################################################## | ||
272 | +############################################################################################## | ||
273 | +############################################################################################## |