devilbox/.tests/intra-tests/vhosts.sh

129 lines
3.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
set -u
set -o pipefail
#
# NOTE: Parsing curl to tac to circumnvent "failed writing body"
# https://stackoverflow.com/questions/16703647/why-curl-return-and-error-23-failed-writing-body
#
VHOST="${1:-vhost-tests}"
VHOST_GEN_URL="/info_vhostgen.php?name=${VHOST}"
VHOST_URL="/vhost.d/${VHOST}.conf"
###
### vhost.d config
###
printf "[TEST] vhost.d config link available for ${VHOST}"
# 1st Try
if ! curl -sS localhost/vhosts.php | tac | tac | grep "${VHOST}" | grep -q "${VHOST_URL}"; then
# 2nd Try
sleep 1
if ! curl -sS localhost/vhosts.php | tac | tac | grep "${VHOST}" | grep -q "${VHOST_URL}"; then
# 3rd Try
sleep 1
if ! curl -sS localhost/vhosts.php | tac | tac | grep "${VHOST}" | grep -q "${VHOST_URL}"; then
printf "\r[FAIL] vhost.d config link available for ${VHOST}\n"
curl -sS localhost/vhosts.php | tac | tac | grep -E "${VHOST}|vhostgen" || true
exit 1
else
printf "\r[OK] vhost.d config link available for ${VHOST} (3 rounds)\n"
fi
else
printf "\r[OK] vhost.d config link available for ${VHOST} (2 rounds)\n"
fi
else
printf "\r[OK] vhost.d config link available for ${VHOST} (1 round)\n"
fi
###
### vhost-gen config
###
printf "[TEST] vhost-gen config link available for ${VHOST}"
# 1st Try
if ! curl -sS localhost/vhosts.php | tac | tac | grep "${VHOST}" | grep "vhost-gen" | grep -q "${VHOST_GEN_URL}"; then
# 2nd Try
sleep 1
if ! curl -sS localhost/vhosts.php | tac | tac | grep "${VHOST}" | grep "vhost-gen" | grep -q "${VHOST_GEN_URL}"; then
# 3rd Try
sleep 1
if ! curl -sS localhost/vhosts.php | tac | tac | grep "${VHOST}" | grep "vhost-gen" | grep -q "${VHOST_GEN_URL}"; then
printf "\r[FAIL] vhost-gen config link available for ${VHOST}\n"
curl -sS localhost/vhosts.php | tac | tac | grep -E "${VHOST}|vhostgen|vhost-gen" || true
exit 1
else
printf "\r[OK] vhost-gen config link available for ${VHOST} (3 rounds)\n"
fi
else
printf "\r[OK] vhost-gen config link available for ${VHOST} (2 rounds)\n"
fi
else
printf "\r[OK] vhost-gen config link available for ${VHOST} (1 round)\n"
fi
###
### vhost.d config
###
printf "[TEST] vhost.d config available for ${VHOST}"
# 1st Try
if ! curl -sS localhost${VHOST_URL} | tac | tac | grep -q "${VHOST}-access.log";then
# 2nd Try
sleep 1
if ! curl -sS localhost${VHOST_URL} | tac | tac | grep -q "${VHOST}-access.log";then
# 3rd Try
sleep 1
if ! curl -sS localhost${VHOST_URL} | tac | tac | grep -q "${VHOST}-access.log";then
printf "\r[FAIL] vhost.d config available for ${VHOST}\n"
curl -sS localhost${VHOST_URL} || true
exit 1
else
printf "\r[OK] vhost.d config available for ${VHOST} (3 rounds)\n"
fi
else
printf "\r[OK] vhost.d config available for ${VHOST} (2 rounds)\n"
fi
else
printf "\r[OK] vhost.d config available for ${VHOST} (1 round)\n"
fi
###
### vhostgen config
###
printf "[TEST] vhost-gen config available for ${VHOST}"
# 1st Try
if ! curl -sS localhost${VHOST_GEN_URL} | tac | tac | grep -q "/shared/httpd/${VHOST}";then
# 2nd Try
sleep 1
if ! curl -sS localhost${VHOST_GEN_URL} | tac | tac | grep -q "/shared/httpd/${VHOST}";then
# 3rd Try
sleep 1
if ! curl -sS localhost${VHOST_GEN_URL} | tac | tac | grep -q "/shared/httpd/${VHOST}";then
printf "\r[FAIL] vhost-gen config available for ${VHOST}\n"
curl -sS localhost${VHOST_GEN_URL} || true
exit 1
else
printf "\r[OK] vhost-gen config available for ${VHOST} (3 rounds)\n"
fi
else
printf "\r[OK] vhost-gen config available for ${VHOST} (2 rounds)\n"
fi
else
printf "\r[OK] vhost-gen config available for ${VHOST} (1 round)\n"
fi