This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the bash category.
Last Updated: 2024-11-21
This function might fail if the DB is not provisioned yet (takes 10-40s on localhost)
install_wordpress_plugins() {
wpcli core install \
--title="${WORDPRESS_SITE_TITLE}" \
--url="${WORDPRESS_SITE_URL}" \
--admin_user="${WORDPRESS_ADMIN_USER}" \
--admin_password="${WORDPRESS_ADMIN_PASSWORD}" \
--admin_email="${WORDPRESS_ADMIN_EMAIL}"
wpcli theme activate project_p
}
How to run it until it succeeds? My first iteration "worked" but was brittle:
sleep 30
install_wordpress_plugins
Here's the improved version:
until install_wordpress_plugins; do
printf "."
sleep 5
done
This works because bash returns non-zero no matter what weird errors happen in that function. Until it returns 0, it keeps iterating. An improvement would be a max retry system.