From 50e6ccb32e0b09b475bbd9df0068e7efee59aa26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Mart=C3=ADn?= Date: Wed, 29 May 2024 14:27:21 +0200 Subject: [PATCH] Retry init if database is not ready --- bin/writefreely-docker.sh | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/bin/writefreely-docker.sh b/bin/writefreely-docker.sh index 46aeba4..dbf40c3 100755 --- a/bin/writefreely-docker.sh +++ b/bin/writefreely-docker.sh @@ -21,13 +21,31 @@ cd /data WRITEFREELY=/writefreely/writefreely +validate_url() { + URL="$1" + if echo "$URL" | grep -Eq "^https?://[a-zA-Z0-9._-]+"; then + return 0 # Success + else + return 1 # Failure + fi +} + +# Validate WRITEFREELY_HOST +if ! validate_url "$WRITEFREELY_HOST"; then + echo "Error: $WRITEFREELY_HOST is not a valid URL. It must start with http:// or https:// and be followed by a valid hostname." + exit 1 +fi + if [ -e ./config.ini ] && [ -e ./keys/email.aes256 ]; then ${WRITEFREELY} -migrate exec ${WRITEFREELY} fi if [ -e ./config.ini ]; then - ${WRITEFREELY} -init-db + until ${WRITEFREELY} --init-db; do + echo "Retrying --init-db..." + sleep 5 + done ${WRITEFREELY} -gen-keys exec ${WRITEFREELY} fi @@ -146,7 +164,12 @@ EOF chmod 600 ./config.ini -${WRITEFREELY} --init-db +# Retry --init-db until it succeeds +until ${WRITEFREELY} --init-db; do + echo "Retrying --init-db..." + sleep 5 +done + ${WRITEFREELY} --gen-keys if [ -n "$WRITEFREELY_ADMIN_USER" ]; then