diff --git a/rootfs/etc/cont-init.d/10-verify-wordpress b/rootfs/etc/cont-init.d/10-verify-wordpress index 4226790..7392d08 100755 --- a/rootfs/etc/cont-init.d/10-verify-wordpress +++ b/rootfs/etc/cont-init.d/10-verify-wordpress @@ -6,51 +6,51 @@ trap scriptExitHandler EXIT function scriptExitHandler() { - LAST_EXIT_CODE=$? - if [ "${LAST_EXIT_CODE}" = "0" ]; then - echo "> Script finished successfully" - exit "${LAST_EXIT_CODE}" - fi + LAST_EXIT_CODE=$? + if [ "${LAST_EXIT_CODE}" = "0" ]; then + echo "> Script finished successfully" + exit "${LAST_EXIT_CODE}" + fi - echo "> Script finished with an error" - exit "${LAST_EXIT_CODE}" + echo "> Script finished with an error" + exit "${LAST_EXIT_CODE}" } function reportUnhealthy() { - echo "${1:?REASON is required}" > "/tmp/.wp-unhealthy" + echo "${1:?REASON is required}" >"/tmp/.wp-unhealthy" } # Main function function main() { - # Removes trailing zero if found - # This is required due to inconsistencies between WodPress docker image versioning and wp-cli core download - # If patch version is 0, it is not considered by wp-cli. - WP_VERSION=$(echo "${WP_VERSION:?}" | sed --expression='s/.0$//g') + # Removes trailing zero if found + # This is required due to inconsistencies between WodPress docker image versioning and wp-cli core download + # If patch version is 0, it is not considered by wp-cli. + WP_VERSION=$(echo "${WP_VERSION:?}" | sed --expression='s/.0$//g') - echo "> Verifying 'WordPress ${WP_VERSION}' installation..." - WP_INSTALLED_VERSION="$(wp core version)" + echo "> Verifying 'WordPress ${WP_VERSION}' installation..." + WP_INSTALLED_VERSION="$(wp core version)" - set -e + set -e - rm -f "/tmp/.wp-unhealthy" - if [ -z "${WP_INSTALLED_VERSION}" ]; then - echo "> ERROR! WordPress installation does not seem to be present or valid. Continuing anyway..." + rm -f "/tmp/.wp-unhealthy" + if [ -z "${WP_INSTALLED_VERSION}" ]; then + echo "> ERROR! WordPress installation does not seem to be present or valid. Continuing anyway..." - reportUnhealthy "WP_NOT_PRESENT" - return 0 - elif [ "${WP_INSTALLED_VERSION}" != "${WP_VERSION}" ]; then - echo "> WARNING! WordPress version mismatch" - echo " Expected version: ${WP_VERSION}" - echo " Detected version: ${WP_INSTALLED_VERSION}" - echo "> Seems like WordPress installation got updated outside image scope" - echo " - This is dangerous as changes will not persist when container is recreated which might lead to inconsistencies between installation and the database." - echo " - You should assume that recreating the container will render the website inoperable." - echo " - Please make sure that you're running image: nlss/wordpress:${WP_VERSION}" - reportUnhealthy "WP_VERSION_MISMATCH" - return 0 - else - echo "> Identified 'WordPress ${WP_VERSION}'" - fi + reportUnhealthy "WP_NOT_PRESENT" + return 0 + elif [ "${WP_INSTALLED_VERSION}" != "${WP_VERSION}" ]; then + echo "> WARNING! WordPress version mismatch" + echo " Expected version: ${WP_VERSION}" + echo " Detected version: ${WP_INSTALLED_VERSION}" + echo "> Seems like WordPress installation got updated outside image scope" + echo " - This is dangerous as changes will not persist when container is recreated which might lead to inconsistencies between installation and the database." + echo " - You should assume that recreating the container will render the website inoperable." + echo " - Please make sure that you're running image: nlss/wordpress:${WP_VERSION}" + reportUnhealthy "WP_VERSION_MISMATCH" + return 0 + else + echo "> Identified 'WordPress ${WP_VERSION}'" + fi } main "${@}" diff --git a/rootfs/etc/cont-init.d/20-install-plugins b/rootfs/etc/cont-init.d/20-install-plugins index bef562a..75ba0c5 100755 --- a/rootfs/etc/cont-init.d/20-install-plugins +++ b/rootfs/etc/cont-init.d/20-install-plugins @@ -4,91 +4,91 @@ trap scriptExitHandler EXIT function scriptExitHandler() { - LAST_EXIT_CODE=$? - if [ "${LAST_EXIT_CODE}" = "0" ]; then - echo "> Script finished successfully" - exit "${LAST_EXIT_CODE}" - fi + LAST_EXIT_CODE=$? + if [ "${LAST_EXIT_CODE}" = "0" ]; then + echo "> Script finished successfully" + exit "${LAST_EXIT_CODE}" + fi - echo "> Script finished with an error" - exit "${LAST_EXIT_CODE}" + echo "> Script finished with an error" + exit "${LAST_EXIT_CODE}" } # Check if plugin installed. This is very basic check that doesn't involve database function isPluginInstalled() { - if [ -d "${PLUGIN_PATH}" ] || [ -f "${PLUGIN_PATH}.php" ]; then - return 0 - fi - return 1 + if [ -d "${PLUGIN_PATH}" ] || [ -f "${PLUGIN_PATH}.php" ]; then + return 0 + fi + return 1 } # Install plugin function installPlugin() { - wp plugin install "${@}" >/dev/null 2>&1 - sleep 0.5 + wp plugin install "${@}" >/dev/null 2>&1 + sleep 0.5 } # Main function function main() { - PLUGIN_LIST="${WORDPRESS_PLUGIN_LIST:-}" - PLUGIN_STRICT_INSTALL="${WORDPRESS_PLUGIN_INSTALL_STRICT:-false}" - WP_CONTENT_PATH="/var/www/html/wp-content" + PLUGIN_LIST="${WORDPRESS_PLUGIN_LIST:-}" + PLUGIN_STRICT_INSTALL="${WORDPRESS_PLUGIN_INSTALL_STRICT:-false}" + WP_CONTENT_PATH="/var/www/html/wp-content" - echo "> Automated WordPress Plugin Installer" - if [ -z "${PLUGIN_LIST}" ]; then - echo "> No plugins defined. Skipping installation." - return 0 - fi - - echo "> About to install defined plugins" - for PLUGIN_EXPR in ${PLUGIN_LIST}; do - IFS=':' read -ra PLUGIN <<<"${PLUGIN_EXPR}" - - PLUGIN_PATH="${WP_CONTENT_PATH}/plugins/${PLUGIN[0]}" - - if isPluginInstalled; then - echo "> Plugin '${PLUGIN[0]}' already installed and will be skipped." - continue + echo "> Automated WordPress Plugin Installer" + if [ -z "${PLUGIN_LIST}" ]; then + echo "> No plugins defined. Skipping installation." + return 0 fi - WP_PLUGIN_INSTALL_ARGS="${PLUGIN[0]}" + echo "> About to install defined plugins" + for PLUGIN_EXPR in ${PLUGIN_LIST}; do + IFS=':' read -ra PLUGIN <<<"${PLUGIN_EXPR}" - if [ -n "${PLUGIN[1]}" ]; then - WP_PLUGIN_INSTALL_ARGS="${WP_PLUGIN_INSTALL_ARGS} --version=${PLUGIN[1]}" + PLUGIN_PATH="${WP_CONTENT_PATH}/plugins/${PLUGIN[0]}" + + if isPluginInstalled; then + echo "> Plugin '${PLUGIN[0]}' already installed and will be skipped." + continue + fi + + WP_PLUGIN_INSTALL_ARGS="${PLUGIN[0]}" + + if [ -n "${PLUGIN[1]}" ]; then + WP_PLUGIN_INSTALL_ARGS="${WP_PLUGIN_INSTALL_ARGS} --version=${PLUGIN[1]}" + fi + + echo "> Installing plugin '${PLUGIN[0]}' version '${PLUGIN[1]}'" + installPlugin "${WP_PLUGIN_INSTALL_ARGS}" & + done + + echo "> Waiting for all plugins to install..." + wait + + # Plugins are installed concurrently, so we need to verify if installed, separately + echo "> About to verify install of defined plugins" + + FAILED_COUNT=0 + + for PLUGIN_EXPR in ${PLUGIN_LIST}; do + IFS=':' read -ra PLUGIN <<<"${PLUGIN_EXPR}" + + PLUGIN_PATH="${WP_CONTENT_PATH}/plugins/${PLUGIN[0]}" + + if isPluginInstalled; then + echo "> Plugin '${PLUGIN[0]}' installed" + continue + fi + + ((FAILED_COUNT = FAILED_COUNT + 1)) + echo "> Warning: Plugin '${PLUGIN[0]}' failed to install" + done + + echo "> Total of ${FAILED_COUNT} plugins failed to install" + + if [ "${PLUGIN_STRICT_INSTALL}" = "true" ] && [ ${FAILED_COUNT} != "0" ]; then + echo "> WORDPRESS_PLUGIN_INSTALL_STRICT is set to true. Terminating with non-zero exit code" + return 1 fi - - echo "> Installing plugin '${PLUGIN[0]}' version '${PLUGIN[1]}'" - installPlugin "${WP_PLUGIN_INSTALL_ARGS}" & - done - - echo "> Waiting for all plugins to install..." - wait - - # Plugins are installed concurrently, so we need to verify if installed, separately - echo "> About to verify install of defined plugins" - - FAILED_COUNT=0 - - for PLUGIN_EXPR in ${PLUGIN_LIST}; do - IFS=':' read -ra PLUGIN <<<"${PLUGIN_EXPR}" - - PLUGIN_PATH="${WP_CONTENT_PATH}/plugins/${PLUGIN[0]}" - - if isPluginInstalled; then - echo "> Plugin '${PLUGIN[0]}' installed" - continue - fi - - ((FAILED_COUNT = FAILED_COUNT + 1)) - echo "> Warning: Plugin '${PLUGIN[0]}' failed to install" - done - - echo "> Total of ${FAILED_COUNT} plugins failed to install" - - if [ "${PLUGIN_STRICT_INSTALL}" = "true" ] && [ ${FAILED_COUNT} != "0" ]; then - echo "> WORDPRESS_PLUGIN_INSTALL_STRICT is set to true. Terminating with non-zero exit code" - return 1 - fi } main "${@}"