Skip to content

Commit 94d5013

Browse files
authored
feat(start): improve error handling (#4406)
Provide better error messages when something fails.
1 parent 46c9d10 commit 94d5013

1 file changed

Lines changed: 31 additions & 2 deletions

File tree

start

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,19 @@ set -e
77
# Allow sensitive settings to be defined in a file
88
# in order to support Docker secrets
99
if [ -n "${POSTGRES_PASSWORD_FILE}" ]; then
10+
if [ ! -r "$POSTGRES_PASSWORD_FILE" ]; then
11+
echo "Error: Password file '$POSTGRES_PASSWORD_FILE' not found or not readable" >&2
12+
exit 1
13+
fi
1014
POSTGRES_PASSWORD=$(cat "$POSTGRES_PASSWORD_FILE")
1115
export POSTGRES_PASSWORD
1216
fi
1317

1418
if [ -n "${REDIS_PASSWORD_FILE}" ]; then
19+
if [ ! -r "$REDIS_PASSWORD_FILE" ]; then
20+
echo "Error: Password file '$REDIS_PASSWORD_FILE' not found or not readable" >&2
21+
exit 1
22+
fi
1523
REDIS_PASSWORD=$(cat "$REDIS_PASSWORD_FILE")
1624
export REDIS_PASSWORD
1725
fi
@@ -22,16 +30,28 @@ if [ -z "$CLIENT_MAX_BODY_SIZE" ]; then
2230
fi
2331

2432
if [ -n "${WEBLATE_ADMIN_PASSWORD_FILE}" ]; then
33+
if [ ! -r "$WEBLATE_ADMIN_PASSWORD_FILE" ]; then
34+
echo "Error: Password file '$WEBLATE_ADMIN_PASSWORD_FILE' not found or not readable" >&2
35+
exit 1
36+
fi
2537
WEBLATE_ADMIN_PASSWORD=$(cat "$WEBLATE_ADMIN_PASSWORD_FILE")
2638
export WEBLATE_ADMIN_PASSWORD
2739
fi
2840

2941
if [ -n "${WEBLATE_EMAIL_HOST_PASSWORD_FILE}" ]; then
42+
if [ ! -r "$WEBLATE_EMAIL_HOST_PASSWORD_FILE" ]; then
43+
echo "Error: Password file '$WEBLATE_EMAIL_HOST_PASSWORD_FILE' not found or not readable" >&2
44+
exit 1
45+
fi
3046
WEBLATE_EMAIL_HOST_PASSWORD=$(cat "$WEBLATE_EMAIL_HOST_PASSWORD_FILE")
3147
export WEBLATE_EMAIL_HOST_PASSWORD
3248
fi
3349

3450
if [ -n "${WEBLATE_AUTH_LDAP_BIND_PASSWORD_FILE}" ]; then
51+
if [ ! -r "$WEBLATE_AUTH_LDAP_BIND_PASSWORD_FILE" ]; then
52+
echo "Error: Password file '$WEBLATE_AUTH_LDAP_BIND_PASSWORD_FILE' not found or not readable" >&2
53+
exit 1
54+
fi
3555
WEBLATE_AUTH_LDAP_BIND_PASSWORD=$(cat "$WEBLATE_AUTH_LDAP_BIND_PASSWORD_FILE")
3656
export WEBLATE_AUTH_LDAP_BIND_PASSWORD
3757
fi
@@ -248,7 +268,10 @@ esac
248268

249269
if [ $VERSION_CHECK -eq 1 ]; then
250270
# Fetch server version
251-
PGVERSION=$(psql -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -d "${POSTGRES_DB:-$POSTGRES_DATABASE}" -U "$POSTGRES_USER" -t -A -c 'SHOW server_version_num;')
271+
PGVERSION=$(psql -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" -d "${POSTGRES_DB:-$POSTGRES_DATABASE}" -U "$POSTGRES_USER" -t -A -c 'SHOW server_version_num;') || {
272+
>&2 echo "Failed to connect to PostgreSQL to determine server version"
273+
exit 1
274+
}
252275

253276
unset PGPASSWORD
254277

@@ -384,7 +407,13 @@ set_real_ip_from ::/0;
384407
# Calculate number of processes, at least 2, at most 4, depending on CPU cores
385408
if [ -z "$WEBLATE_WORKERS" ]; then
386409
PROCESSORS=$(nproc)
387-
WEBLATE_WORKERS=$((PROCESSORS < 2 ? 2 : PROCESSORS > 4 ? 4 : PROCESSORS))
410+
if [ "$PROCESSORS" -lt 2 ]; then
411+
WEBLATE_WORKERS=2
412+
elif [ "$PROCESSORS" -gt 4 ]; then
413+
WEBLATE_WORKERS=4
414+
else
415+
WEBLATE_WORKERS="$PROCESSORS"
416+
fi
388417
echo "Auto-scaled to $WEBLATE_WORKERS processes, adjust by setting WEBLATE_WORKERS"
389418
fi
390419

0 commit comments

Comments
 (0)