Skip to content

Commit d7164ad

Browse files
committed
📖 DOC: Refactor entrypoint.sh for improved environment variable validation and handling
1 parent f71cbeb commit d7164ad

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

entrypoint.sh

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ set -e
33

44
# Validate the required environment variables
55
validate() {
6-
: ${SERVER_TYPE^^:?"SERVER_TYPE variable missing from environment variables."}
6+
: ${SERVER_TYPE:?"SERVER_TYPE variable missing from environment variables."}
77
: ${SSH_PRIVATE_KEY:?"SSH_PRIVATE_KEY variable missing from environment variables."}
88
: ${SERVER_ID:?"SERVER_ID variable missing from environment variables."}
99
REMOTE_PATH="${REMOTE_PATH:-""}"
1010
SRC_PATH="${SRC_PATH:-"."}"
1111
FLAGS="${FLAGS:-"-azvrhi --inplace --exclude='.*'"}"
12-
PHP_LINT="${PHP_LINT^^:-"FALSE"}"
13-
CACHE_CLEAR="${CACHE_CLEAR^^:-"FALSE"}"
12+
PHP_LINT="${PHP_LINT:-"false"}"
13+
CACHE_CLEAR="${CACHE_CLEAR:-"false"}"
1414
SCRIPT="${SCRIPT:-""}"
1515
}
1616

1717
# Set up environment variables
18-
setup_env() {
19-
case "${SERVER_TYPE}" in
18+
init() {
19+
case "${SERVER_TYPE^^}" in
2020
PRESSABLE)
2121
SSH_HOST="ssh.pressable.com"
2222
SERVER_BASE_PATH="~/htdocs"
@@ -32,8 +32,12 @@ setup_env() {
3232
esac
3333
SSH_USER="${SERVER_ID}@${SSH_HOST}"
3434
SERVER_DEST="${SSH_USER}:${SERVER_BASE_PATH}/${REMOTE_PATH}"
35+
3536
parse_flags "$FLAGS"
37+
3638
print_info
39+
setup_ssh
40+
check_lint
3741
}
3842

3943
# Print deployment info
@@ -77,7 +81,7 @@ setup_ssh() {
7781

7882
# Check PHP linting
7983
check_lint() {
80-
if [ "${PHP_LINT}" == "TRUE" ]; then
84+
if [ "${PHP_LINT^^}" == "TRUE" ]; then
8185
echo "Starting PHP linting..."
8286
find "${SRC_PATH}" -name "*.php" -type f -print0 | while IFS= read -r -d '' file; do
8387
php -l "$file"
@@ -112,7 +116,7 @@ sync_files() {
112116
check_cache
113117

114118
# Execute post-deploy script
115-
ssh ${SSH_SETTINGS} "${SSH_USER}" "${SCRIPT_COMMAND} ${CACHE_CLEAR}"
119+
ssh ${SSH_SETTINGS} "${SSH_USER}" "${SCRIPT_COMMAND} ${CACHE_COMMAND}"
116120

117121
# Close SSH multiplex connection
118122
ssh -O exit -o ControlPath="${SSH_PATH}/ctl/%C" "${SSH_USER}"
@@ -136,7 +140,7 @@ check_script() {
136140

137141
# Check cache clearing command
138142
check_cache() {
139-
if [ "${CACHE_CLEAR}" == "TRUE" ]; then
143+
if [ "${CACHE_CLEAR^^}" == "TRUE" ]; then
140144
if [ "${SERVER_TYPE^^}" == "PRESSABLE" ]; then
141145
CACHE_COMMAND="&& wp --skip-plugins --skip-themes cache flush"
142146
elif [ "${SERVER_TYPE^^}" == "WPENGINE" ]; then
@@ -146,14 +150,12 @@ check_cache() {
146150
fi
147151

148152
echo "Cache command: " ${CACHE_COMMAND}
149-
elif [ "${CACHE_CLEAR}" == "FALSE" ]; then
153+
else
150154
CACHE_COMMAND=""
151155
fi
152156
}
153157

154158
# Main execution
155159
validate
156-
setup_env
157-
setup_ssh
158-
check_lint
160+
init
159161
sync_files

0 commit comments

Comments
 (0)