Skip to content

Commit 4791c02

Browse files
committed
Merge branch 'master' of github.com:FriendCode/codebox
2 parents 4a5eb82 + 0f22ba7 commit 4791c02

File tree

1 file changed

+103
-86
lines changed

1 file changed

+103
-86
lines changed

core/cb.project/php/run_apache.sh

+103-86
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ CONF="apache2.conf"
2222
# Platform specific apache extras
2323
EXTRA_CONF=''
2424
if [[ $platform == 'Linux' ]]; then
25-
EXTRA_CONF="
25+
EXTRA_CONF="
2626
# Include module configuration:
2727
Include /etc/apache2/mods-enabled/*.load
2828
Include /etc/apache2/mods-enabled/*.conf
2929
"
3030
elif [[ $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')
3434
LoadModule php5_module /usr/libexec/apache2/libphp5.so
@@ -37,7 +37,7 @@ fi
3737

3838
# Include phpmyadmin only if there
3939
if [[ -f "/etc/apache2/conf.d/phpmyadmin.conf" ]]; then
40-
EXTRA_CONF+="
40+
EXTRA_CONF+="
4141
Include /etc/apache2/conf.d/phpmyadmin.conf
4242
"
4343
fi
@@ -64,9 +64,9 @@ MaxSpareServers 1
6464
# Serve our workspace
6565
DocumentRoot "${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
7272
AddType application/x-httpd-php .php
@@ -83,106 +83,123 @@ MYSQL_STARTED=false
8383
MYSQL_PORT=3306
8484

8585
function 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)
9595
function 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
105104
function 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+
# Specify that MySQL was started by this script
117+
# And thus we handle it's termination
118+
MYSQL_STARTED=true
119+
120+
echo "MySQL RUNNING = $(is_mysql_running)"
121+
# Check if MySQL is already running
122+
if [ -n "$(is_mysql_running)" ]; then
123+
echo "MySQL appears to already be running on PORT=${MYSQL_PORT}"
124+
return
125+
fi
126+
127+
locals needs_pwd="$(needs_sudo_pwd)"
128+
# Try running in sudo or not
129+
if [ -n ${needs_pwd} ]; then
130+
sudo -n ${sudo_mysql} &
131+
SUDO_MYSQL=true
132+
else
133+
${mysql} &
134+
fi
135+
136+
# If MySQL is not running
137+
if [ -z "$(is_mysql_running)" ]; then
138+
# Try running with sudo (and passwd prompt)
139+
if [ ! $SUDO_MYSQL ]; then
140+
echo "Please enter sudo password for MySQL"
141+
sudo ${sudo_mysql} &
142+
SUDO_MYSQL=true
143+
fi
144+
else
145+
echo "MySQL is up and running"
146+
fi
147+
148+
# After all our different tries is MySQL up ?
149+
if [ -n "$(is_mysql_running)" ]; then
150+
MYSQL_STARTED=true
151+
fi
143152
}
144153

145154
# Stop MySQL started by "start_mysql"
146155
function 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
156+
echo "Killing MySQL"
157+
158+
# MySQL wasn't started by this script
159+
# or is already dead
160+
if [ ! $MYSQL_STARTED ] || [ -z "$(is_mysql_running)" ]; then
161+
echo "No need to kill MySQL, it is not running"
162+
# So do nothing
163+
return
164+
fi
165+
166+
# Force kill MySQL
167+
if [ $SUDO_MYSQL ]; then
168+
echo "Killing Sudo MySQL"
169+
sudo -n killall -s KILL mysqld
170+
else
171+
killall -s KILL mysqld
172+
fi
157173
}
158174

159175
# Wait for a process or group of processes
160176
function anywait() {
161-
for pid in "$@"; do
162-
while kill -0 "$pid" &> /dev/null; do
163-
sleep 0.5
164-
done
165-
done
177+
for pid in "$@"; do
178+
while kill -0 "$pid" &> /dev/null; do
179+
sleep 0.5
180+
done
181+
done
166182
}
167183

168184
function 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}
185+
# Kill Apache
186+
if [[ -f ${PID_FILE} ]]; then
187+
echo "Killed process"
188+
# Kill process and all children
189+
kill -KILL -- -$(cat ${PID_FILE})
190+
fi
191+
192+
# Kill MySQL
193+
stop_mysql
194+
195+
# Remove folder on exit
196+
echo "Cleaning up ${FOLDER}"
197+
rm -rf ${FOLDER}
198+
exit
182199
}
183200

184201
# Cleanup when killed
185-
trap cleanup EXIT INT KILL
202+
trap cleanup EXIT INT KILL TERM
186203

187204
# Run MySQL
188205
start_mysql
@@ -200,5 +217,5 @@ echo "Waiting for Apache2 process : ${PID}"
200217
anywait ${PID}
201218
echo "Apache is dead (pid=${PID})"
202219

203-
# Cleanup on exit
204-
cleanup
220+
221+

0 commit comments

Comments
 (0)