@@ -22,13 +22,13 @@ CONF="apache2.conf"
2222# Platform specific apache extras
2323EXTRA_CONF=' '
2424if [[ $platform == ' Linux' ]]; then
25- EXTRA_CONF="
25+ EXTRA_CONF="
2626# Include module configuration:
2727Include /etc/apache2/mods-enabled/*.load
2828Include /etc/apache2/mods-enabled/*.conf
2929"
3030elif [[ $platform == ' Darwin' ]]; then
31- EXTRA_CONF="
31+ EXTRA_CONF="
3232# Modules
3333$( cat /etc/apache2/httpd.conf | grep LoadModule | sed ' s/libexec/\/usr\/libexec/g' )
3434LoadModule php5_module /usr/libexec/apache2/libphp5.so
3737
3838# Include phpmyadmin only if there
3939if [[ -f " /etc/apache2/conf.d/phpmyadmin.conf" ]]; then
40- EXTRA_CONF+="
40+ EXTRA_CONF+="
4141Include /etc/apache2/conf.d/phpmyadmin.conf
4242"
4343fi
@@ -64,9 +64,9 @@ MaxSpareServers 1
6464# Serve our workspace
6565DocumentRoot "${WORKSPACE} "
6666<Directory />
67- AllowOverride all
68- Order allow,deny
69- Allow from all
67+ AllowOverride all
68+ Order allow,deny
69+ Allow from all
7070</Directory>
7171
7272AddType application/x-httpd-php .php
@@ -83,106 +83,118 @@ MYSQL_STARTED=false
8383MYSQL_PORT=3306
8484
8585function is_mysql_running() {
86- # Check if there is a TCP server listening on MySQL's port
87- netstat -nat | grep -i listen | grep -e " [\:\.]${MYSQL_ROOT } " & > /dev/null
88- # Check for success
89- if [ $? = 0 ]; then
90- echo " true"
91- fi
86+ # Check if there is a TCP server listening on MySQL's port
87+ netstat -nat | grep -i listen | grep -e " [\:\.]${MYSQL_PORT } " & > /dev/null
88+ # Check for success
89+ if [ $? = = 0 ]; then
90+ echo " true"
91+ fi
9292}
9393
9494# Echoes sudo if the system supports sudo without password for current user (codebox.io boxes for example)
9595function needs_sudo_pwd() {
96- sudo -n echo | head -n 1 | grep -q -v " sudo:"
97- local success=$?
98- if [ success = 0 ]; then
99- # No password needed
100- echo " true"
101- fi
96+ sudo -n echo | head -n 1 | grep -q -v " sudo:"
97+ if [ $? == 0 ]; then
98+ # No password needed
99+ echo " true"
100+ fi
102101}
103102
104103# Start mysql and set SUDO_MYSQL
105104function start_mysql() {
106- echo " Starting MySQL server ..."
107-
108- # Exit if MySQL is not on $PATH
109- if [ -z " $( which mysqld) " ]; then
110- echo " Could not start MySQL because it is not installed on the system's \$ PATH"
111- fi
112-
113- # Check if MySQL is already running
114- if [ -n " $( is_mysql_running) " ]; then
115- echo " MySQL appears to already be running on PORT=${MYSQL_PORT} "
116- return
117- fi
118-
119- locals needs_pwd=" $( needs_sudo_pwd) "
120- # Try running in sudo or not
121- if [ -n ${needs_pwd} ]; then
122- sudo -n mysqld &
123- SUDO_MYSQL=true
124- else
125- mysqld &
126- fi
127-
128- # If MySQL is not running
129- if [ -z " $( is_mysql_running) " ]; then
130- # Try running with sudo (and passwd prompt)
131- if [ ! $SUDO_MYSQL ]; then
132- echo " Please enter sudo password for MySQL"
133- sudo mysqld &
134- fi
135- else
136- echo " MySQL is up and running"
137- fi
138-
139- # After all our different tries is MySQL up ?
140- if [ -n " $( is_mysql_running) " ]; then
141- MYSQL_STARTED=true
142- fi
105+ echo " Starting MySQL server ..."
106+
107+ # Commands
108+ local sudo_mysql=" mysqld --user=root"
109+ local mysql=" mysqld"
110+
111+ # Exit if MySQL is not on $PATH
112+ if [ -z " $( which mysqld) " ]; then
113+ echo " Could not start MySQL because it is not installed on the system's \$ PATH"
114+ fi
115+
116+ echo " MySQL RUNNING = $( is_mysql_running) "
117+ # Check if MySQL is already running
118+ if [ -n " $( is_mysql_running) " ]; then
119+ echo " MySQL appears to already be running on PORT=${MYSQL_PORT} "
120+ return
121+ fi
122+
123+ locals needs_pwd=" $( needs_sudo_pwd) "
124+ # Try running in sudo or not
125+ if [ -n ${needs_pwd} ]; then
126+ sudo -n ${sudo_mysql} &
127+ SUDO_MYSQL=true
128+ else
129+ ${mysql} &
130+ fi
131+
132+ # If MySQL is not running
133+ if [ -z " $( is_mysql_running) " ]; then
134+ # Try running with sudo (and passwd prompt)
135+ if [ ! $SUDO_MYSQL ]; then
136+ echo " Please enter sudo password for MySQL"
137+ sudo ${sudo_mysql} &
138+ SUDO_MYSQL=true
139+ fi
140+ else
141+ echo " MySQL is up and running"
142+ fi
143+
144+ # After all our different tries is MySQL up ?
145+ if [ -n " $( is_mysql_running) " ]; then
146+ MYSQL_STARTED=true
147+ fi
143148}
144149
145150# Stop MySQL started by "start_mysql"
146151function stop_mysql() {
147- echo " Killing MySQL"
148- # MySQL wasn't started by this script
149- # or is already dead
150- if [ ! ${MYSQL_STARTED} || -z " $( is_mysql_running) " ]; then
151- # So do nothing
152- return
153- fi
154-
155- # Force kill MySQL
156- killall -s KILL mysqld
152+ echo " Killing MySQL"
153+ # MySQL wasn't started by this script
154+ # or is already dead
155+ if [ ! ${MYSQL_STARTED} ] || [ -z " $( is_mysql_running) " ]; then
156+ echo " No need to kill MySQL, it is not running"
157+ # So do nothing
158+ return
159+ fi
160+
161+ # Force kill MySQL
162+ if [ $SUDO_MYSQL ]; then
163+ echo " Killing Sudo MySQL"
164+ sudo -n killall -s KILL mysqld
165+ else
166+ killall -s KILL mysqld
167+ fi
157168}
158169
159170# Wait for a process or group of processes
160171function anywait() {
161- for pid in " $@ " ; do
162- while kill -0 " $pid " & > /dev/null; do
163- sleep 0.5
164- done
165- done
172+ for pid in " $@ " ; do
173+ while kill -0 " $pid " & > /dev/null; do
174+ sleep 0.5
175+ done
176+ done
166177}
167178
168179function cleanup {
169- # Kill Apache
170- if [[ -f ${PID_FILE} ]]; then
171- echo " Killed process"
172- # Kill process and all children
173- /bin/kill -s KILL -$( cat ${PID_FILE} )
174- fi
175-
176- # Kill MySQL
177- stop_mysql
178-
179- # Remove folder on exit
180- echo " Cleaning up ${FOLDER} "
181- rm -rf ${FOLDER}
180+ # Kill Apache
181+ if [[ -f ${PID_FILE} ]]; then
182+ echo " Killed process"
183+ # Kill process and all children
184+ kill -KILL -- -$( cat ${PID_FILE} )
185+ fi
186+
187+ # Kill MySQL
188+ stop_mysql
189+
190+ # Remove folder on exit
191+ echo " Cleaning up ${FOLDER} "
192+ rm -rf ${FOLDER}
193+ exit
182194}
183195
184196# Cleanup when killed
185- trap cleanup EXIT INT KILL
197+ trap cleanup EXIT INT KILL TERM
186198
187199# Run MySQL
188200start_mysql
@@ -200,5 +212,5 @@ echo "Waiting for Apache2 process : ${PID}"
200212anywait ${PID}
201213echo " Apache is dead (pid=${PID} )"
202214
203- # Cleanup on exit
204- cleanup
215+
216+
0 commit comments