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 | +############################################################################################## |