2024-05-25 02:25:33 +02:00
|
|
|
#!/command/with-contenv bash
|
|
|
|
# shellcheck shell=bash
|
|
|
|
|
|
|
|
await_database() {
|
|
|
|
# Settings
|
|
|
|
local interval="1"
|
|
|
|
local status
|
|
|
|
|
|
|
|
# For loop
|
|
|
|
for i in {1..30}
|
|
|
|
do
|
|
|
|
# Check if database is reachable
|
|
|
|
status="$(wp core is-installed 2>&1)"
|
|
|
|
|
|
|
|
# Check if status contains database connection (partial match)
|
|
|
|
if echo "${status}" | grep -q "Error establishing"; then
|
|
|
|
echo "Database is not reachable, retrying in ${interval} seconds [${i}/30]"
|
|
|
|
sleep "${interval}"
|
|
|
|
continue
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
# init-install-wordpress main
|
|
|
|
main() {
|
|
|
|
# This will prepend service name to all output from here
|
|
|
|
exec > >(while read -r line; do echo "[init-install-wordpress] ${line}"; done) 2>&1
|
|
|
|
|
|
|
|
if [ "${WORDPRESS_INIT_ENABLE:-false}" = "false" ]; then
|
|
|
|
echo "WordPress init is disabled"
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Check if WordPress is already installed
|
|
|
|
if wp core is-installed 2>&1; then
|
|
|
|
echo "WordPress is already installed"
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if ! await_database; then
|
|
|
|
echo "Error: Database is not reachable"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
2024-10-29 19:16:44 +01:00
|
|
|
source /usr/local/bin/load_secrets
|
|
|
|
|
2024-10-29 02:39:46 +01:00
|
|
|
s6-envdir /run/secrets_normalized wp core install \
|
2024-05-25 03:13:15 +02:00
|
|
|
--url="${WORDPRESS_INIT_SITE_URL:?}" \
|
|
|
|
--title="${WORDPRESS_INIT_SITE_TITLE:-WordPress}" \
|
2024-05-25 02:25:33 +02:00
|
|
|
--admin_user="${WORDPRESS_INIT_ADMIN_USER:?}" \
|
|
|
|
--admin_password="${WORDPRESS_INIT_ADMIN_PASSWORD:?}" \
|
|
|
|
--admin_email="${WORDPRESS_INIT_ADMIN_EMAIL:?}" \
|
|
|
|
--skip-email
|
|
|
|
|
|
|
|
}
|
|
|
|
main
|