Skip to content
This repository was archived by the owner on Jan 25, 2022. It is now read-only.

Commit 0d8ccd5

Browse files
author
Mick Hellstrom
committed
Added testing scripts.
1 parent cd1760b commit 0d8ccd5

File tree

17 files changed

+384
-24
lines changed

17 files changed

+384
-24
lines changed

commands/check-mounts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Example
4+
#
5+
# box check-mounts
6+
#
7+
if [ -e /var/www/NOTMOUNTED ]
8+
then
9+
tput setaf 1
10+
cat /var/www/index.txt
11+
tput sgr0
12+
exit 1
13+
fi
14+
15+
exit 0
16+

commands/database

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,10 +180,11 @@ function database_import() {
180180
# MariaDB does not support 'utf8mb4_unicode_520_ci' but does support 'utf8mb4_unicode_ci'
181181
# This should become a lot more intelligent but for now it should suffice.
182182
#
183-
output "Converting 'utf8mb4_unicode_520_ci' to 'utf8mb4_unicode_ci'"
183+
output "Stripping '520' from 'utf8mb4_unicode_520_ci' in ${importfilepath}"
184184
if [ ! $(has_arg --dryrun) ]; then
185185
sed -i -e 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' "${importfilepath}"
186186
fi
187+
output "520 stripped"
187188
fi
188189

189190
#

commands/help

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,7 @@ box ${GREEN}status${RESET} - Output status of WPLib Box's standard
1515
box ${GREEN}version${RESET} - Display the current version of this WPLib Box VM.
1616
box ${GREEN}self-update${RESET} - Update this CLI tool to the latest version for this Box version.
1717
18+
box ${GREEN}test${RESET} - Update this CLI tool to the latest version for this Box version.
19+
1820
box [${GREEN}help${RESET}] - Display the above information.
1921
EOF

commands/restart

100644100755
File mode changed.

commands/self-update

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,46 +6,51 @@
66
# all the git commands.
77
# This will be exec at the very end ensuring itself wont be changed during the update.
88

9-
#
9+
1010
# Don't reference common variables as they may not exist.
11-
#
1211
WPLIB_BOX_SCRIPTS_REPO="https://github.com/wplib/box-scripts"
1312
WPLIB_BOX_CLI_DIR="/opt/box"
14-
WPLIB_BOX_CLI_VERSION_FILE="${WPLIB_BOX_CLI_DIR}/version"
1513
DEFAULT_VERSION="master"
1614

1715

1816
# Determine version to run.
19-
if [ "" != "$1" ] ; then
20-
VERSION="$1"
21-
else
22-
VERSION="$(cat "${WPLIB_BOX_CLI_VERSION_FILE}")"
23-
if [ "$DEFAULT_VERSION" == "" ] ; then
17+
if [ "$1" == "" ]
18+
then
19+
VERSION="`cat ${WPLIB_BOX_CLI_DIR}/version`"
20+
if [ "$DEFAULT_VERSION" == "" ]
21+
then
2422
VERSION=${DEFAULT_VERSION}
2523
fi
24+
else
25+
VERSION="$1"
2626
fi
2727

28-
echo "# WPLib-Box: Updating ${WPLIB_BOX_CLI_DIR} with version ${VERSION}"
28+
echo "# WPLib-Box: Updating /opt/box with version ${VERSION}"
2929
if [ -d "${WPLIB_BOX_CLI_DIR}" ]
3030
then
31-
if [ -d "${WPLIB_BOX_CLI_DIR}-LAST" ] ; then
31+
if [ -d "${WPLIB_BOX_CLI_DIR}-LAST" ]
32+
then
3233
sudo rm -rf "${WPLIB_BOX_CLI_DIR}-LAST"
3334
fi
3435
sudo mv "${WPLIB_BOX_CLI_DIR}" "${WPLIB_BOX_CLI_DIR}-LAST"
3536
fi
3637
sudo mkdir -p ${WPLIB_BOX_CLI_DIR}
3738
sudo git clone -q ${WPLIB_BOX_SCRIPTS_REPO} ${WPLIB_BOX_CLI_DIR} > /dev/null
3839
cd ${WPLIB_BOX_CLI_DIR}
39-
sudo git checkout -q --force ${VERSION} > /dev/null
40+
sudo git checkout -q --force ${VERSION} > /dev/null
4041

41-
if [ ! -f "${WPLIB_BOX_CLI_VERSION_FILE}" ]
42+
if [ ! -f /opt/box/version ]
4243
then
43-
sudo touch "${WPLIB_BOX_CLI_VERSION_FILE}"
44-
sudo chown vagrant:vagrant "${WPLIB_BOX_CLI_VERSION_FILE}"
45-
echo $VERSION > "${WPLIB_BOX_CLI_VERSION_FILE}"
44+
sudo touch /opt/box/version
45+
sudo chown vagrant:vagrant /opt/box/version
46+
echo $VERSION > /opt/box/version
4647
fi
4748

48-
sudo chown -R vagrant:vagrant "${WPLIB_BOX_CLI_DIR}"
49+
50+
echo "Done"
51+
52+
53+
4954

5055

5156
exit

commands/shutdown

100644100755
File mode changed.

commands/startup

100644100755
File mode changed.

commands/test

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
#!/bin/bash
2+
#
3+
# Master test script.
4+
#
5+
6+
7+
DEFAULT_PROJECT="wplib"
8+
9+
# Return codes from functions.
10+
RETURN_OK="0"
11+
RETURN_NOK="1"
12+
RETURN_NOSCRIPT="2"
13+
RETURN_NOEXEC="3"
14+
VALID_RETURN=42
15+
16+
17+
exec_cmd()
18+
{
19+
EXECTMPFILE="`mktemp /tmp/BoxTest.XXX`"
20+
21+
echo "$ECHO_PREFIX ${RESET} - EXEC: \"${CYAN}$@${RESET}\""
22+
$@ >& $EXECTMPFILE
23+
RETURN="$?"
24+
if [ "$RETURN" == "$RETURN_OK" ]
25+
then
26+
echo "$ECHO_PREFIX ${RESET} - ${GREEN}EXEC: RETURN($RETURN)${RESET}"
27+
cat $EXECTMPFILE | sed "s/^/$ECHO_PREFIX ${RESET} - ${GREEN}EXEC:${RESET} /"
28+
else
29+
echo "$ECHO_PREFIX ${RESET} - ${RED}EXEC: RETURN($RETURN)${RESET}"
30+
cat $EXECTMPFILE | sed "s/^/$ECHO_PREFIX ${RESET} - ${RED}EXEC:${RESET} /"
31+
fi
32+
33+
return $RETURN
34+
}
35+
36+
37+
echo_info()
38+
{
39+
echo "$ECHO_PREFIX ${RESET} - INFO: $@"
40+
41+
return 0
42+
}
43+
44+
45+
echo_warning()
46+
{
47+
echo "$ECHO_PREFIX ${RESET} - ${YELLOW}INFO: $@"
48+
49+
return 1
50+
}
51+
52+
53+
echo_error()
54+
{
55+
echo "$ECHO_PREFIX ${RESET} - ${RED}INFO: $@"
56+
57+
return 2
58+
}
59+
60+
61+
################################################################################
62+
# OK. This is where things get funky, so I need to explain the flow
63+
# 1. THIS script will call scripts within /opt/box/tests.
64+
# 2. Each of those scripts will SOURCE THIS script to pick up some common functions.
65+
#
66+
# So place everything above here that should be included in called scripts.
67+
# This means the following will avoid an endless loop.
68+
if [ "$AVOID_LOOP" == "OK" ]
69+
then
70+
return
71+
fi
72+
AVOID_LOOP="OK"
73+
export AVOID_LOOP
74+
75+
76+
ctrl_c()
77+
{
78+
tput sgr0
79+
echo ""
80+
echo "$ECHO_PREFIX Aborting script."
81+
exit
82+
}
83+
84+
trap ctrl_c INT
85+
86+
87+
error_nts()
88+
{
89+
RETURN="$?"
90+
echo "$ECHO_PREFIX ${YELLOW}Unknown command.${RESET}"
91+
return $RETURN
92+
}
93+
94+
95+
d_ls()
96+
{
97+
for SCRIPT in $ALLSCRIPTS
98+
do
99+
if [[ -x "/opt/box/tests/$SCRIPT" && -f "/opt/box/tests/$SCRIPT" ]]
100+
then
101+
STDOUT="`/opt/box/tests/$SCRIPT info`"
102+
if [ "$?" == "$VALID_RETURN" ]
103+
then
104+
echo "$STDOUT"
105+
fi
106+
fi
107+
done
108+
109+
return $RETURN_OK
110+
}
111+
112+
113+
d_exec()
114+
{
115+
SCRIPT="$1"
116+
shift
117+
118+
if [ ! -r "/opt/box/tests/$SCRIPT" ]
119+
then
120+
echo "$ECHO_PREFIX ${YELLOW}NO SCRIPT - ${CYAN}${SCRIPT}${RESET}"
121+
return $RETURN_NOSCRIPT
122+
fi
123+
124+
if [ ! -x "/opt/box/tests/$SCRIPT" ]
125+
then
126+
echo "$ECHO_PREFIX ${YELLOW}NO EXEC - ${CYAN}${SCRIPT}${RESET}"
127+
return $RETURN_NOEXEC
128+
fi
129+
130+
echo "################################################################################"
131+
echo "$ECHO_PREFIX ${YELLOW}Run${RESET} - ${CYAN}${SCRIPT}${RESET}"
132+
/opt/box/tests/$SCRIPT "$@"
133+
RETURN="$?"
134+
if [ "$RETURN" == "$RETURN_OK" ]
135+
then
136+
echo "$ECHO_PREFIX ${GREEN}OK${RESET} - ${CYAN}${SCRIPT}${RESET}"
137+
else
138+
echo "$ECHO_PREFIX ${RED}FAILED($RETURN)${RESET} - ${CYAN}${SCRIPT}${RESET}"
139+
fi
140+
echo ""
141+
142+
return $RETURN_OK
143+
}
144+
145+
146+
d_help()
147+
{
148+
cat <<EOF
149+
box test - Show this help.
150+
box test ${GREEN}list${RESET} - List all scripts in /opt/box/tests.
151+
box test ${GREEN}run${RESET} - Run all tests in /opt/box/tests.
152+
box test ${GREEN}run [script]${RESET} - Run a specific test.
153+
EOF
154+
}
155+
156+
157+
################################################################################
158+
ALLSCRIPTS="`ls -1 /opt/box/tests`"
159+
160+
CMD="$1"
161+
shift
162+
SCRIPTS="$@"
163+
164+
case $CMD in
165+
'list'|'ls')
166+
d_ls
167+
;;
168+
169+
''|'help')
170+
d_help
171+
;;
172+
173+
'run')
174+
if [ "$1" == "" ]
175+
then
176+
SCRIPTS="$ALLSCRIPTS"
177+
fi
178+
;;
179+
180+
*)
181+
error_nts
182+
d_help
183+
exit 1
184+
;;
185+
esac
186+
187+
188+
for SCRIPT in $SCRIPTS
189+
do
190+
d_exec $SCRIPT
191+
done
192+
193+
rm -f /tmp/BoxTest.*
194+
195+
exit 0
196+

includes/colors

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ DIRTYSNOW="(B"
1111
WHITE="(B"
1212
RESET="(B"
1313

14-
ECHO_PREFIX="$YELLOW# WPLib Box:$RESET"
14+
ECHO_PREFIX="$YELLOW# WPLib Box:$RESET"
15+
16+
export GRAY RED GREEN YELLOW BLUE PURPLE CYAN DIRTYSNOW WHITE RESET ECHO_PREFIX
17+

includes/constants

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ export WPLIB_BOX_PHPCLI=$(which php7.0)
77
export WPLIB_BOX_DIR="/vagrant"
88
export WPLIB_BOX_CLI_DIR="/opt/box"
99
export WPLIB_BOX_CLI_CMD="/opt/box/box"
10-
export WPLIB_BOX_CLI_VERSION_FILE="/opt/box/version"
11-
1210
export WPLIB_BOX_WEB_ROOT_DIR="/var/www"
1311
export WPLIB_BOX_WATCHERS_DIR="${WPLIB_BOX_WEB_ROOT_DIR}/watchers"
1412

@@ -31,10 +29,6 @@ export WPLIB_BOX_PLUGINS_DIR=$(find_wp_plugins_dir)
3129
export WPLIB_BOX_MU_PLUGINS_DIR=$(find_wp_mu_plugins_dir)
3230
export WPLIB_BOX_VENDOR_DIR=$(find_composer_vendor_dir)
3331

34-
export WPLIB_BOX_DIR="/vagrant"
35-
36-
export WPLIB_BOX_LOG_DIR="${WPLIB_BOX_CLI_DIR}/log"
37-
export WPLIB_BOX_CLI_DEBUG_LOG_FILE="${WPLIB_BOX_LOG_DIR}/cli-debug.log"
3832

3933

4034
#

0 commit comments

Comments
 (0)