Skip to content

Commit caf7ae7

Browse files
committed
use Bashism for if expressions and redirects
1 parent cc0377f commit caf7ae7

1 file changed

Lines changed: 27 additions & 27 deletions

File tree

pkg/docker/entrypoint.sh

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env bash
22

33
# Fixup the passwd file, in case we're on OpenShift
4-
if ! whoami > /dev/null 2>&1; then
5-
if [ "$(id -u)" -ne 5050 ]; then
6-
if [ -w /etc/passwd ]; then
4+
if ! whoami &>/dev/null; then
5+
if [[ $(id -u) != 5050 ]]; then
6+
if [[ -w /etc/passwd ]]; then
77
echo "${USER_NAME:-pgadminr}:x:$(id -u):0:${USER_NAME:-pgadminr} user:${HOME}:/sbin/nologin" >> /etc/passwd
88
fi
99
fi
@@ -16,22 +16,22 @@ function file_env() {
1616
local var="$1"
1717
local fileVar="${var}_FILE"
1818
local def="${2:-}"
19-
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
19+
if [[ -n ${!var:-} && -n ${!fileVar:-} ]]; then
2020
printf >&2 'error: both %s and %s are set (but are exclusive)\n' "$var" "$fileVar"
2121
exit 1
2222
fi
2323
local val="$def"
24-
if [ "${!var:-}" ]; then
24+
if [[ -n ${!var:-} ]]; then
2525
val="${!var}"
26-
elif [ "${!fileVar:-}" ]; then
26+
elif [[ -n ${!fileVar:-} ]]; then
2727
val="$(< "${!fileVar}")"
2828
fi
2929
export "$var"="$val"
3030
unset "$fileVar"
3131
}
3232

3333
# Set values for config variables that can be passed using secrets
34-
if [ -n "${PGADMIN_CONFIG_CONFIG_DATABASE_URI_FILE}" ]; then
34+
if [[ -n $PGADMIN_CONFIG_CONFIG_DATABASE_URI_FILE ]]; then
3535
file_env PGADMIN_CONFIG_CONFIG_DATABASE_URI
3636
fi
3737
file_env PGADMIN_DEFAULT_PASSWORD
@@ -42,7 +42,7 @@ export CONFIG_DISTRO_FILE_PATH="${PGADMIN_CUSTOM_CONFIG_DISTRO_FILE:-/pgadmin4/c
4242
# provided by the user through the PGADMIN_CONFIG_* environment variables.
4343
# Only update the file on first launch. The empty file is created only in default path during the
4444
# container build so it can have the required ownership.
45-
if [ ! -e "${CONFIG_DISTRO_FILE_PATH}" ] || [ "$(wc -m "${CONFIG_DISTRO_FILE_PATH}" 2>/dev/null | awk '{ print $1 }')" = "0" ]; then
45+
if [[ ! -e $CONFIG_DISTRO_FILE_PATH || $(wc -m "${CONFIG_DISTRO_FILE_PATH}" 2>/dev/null | awk '{ print $1 }') == 0 ]]; then
4646
cat << EOF > "${CONFIG_DISTRO_FILE_PATH}"
4747
CA_FILE = '/etc/ssl/certs/ca-certificates.crt'
4848
LOG_FILE = '/dev/null'
@@ -69,7 +69,7 @@ fi
6969

7070
# Check whether the external configuration database exists if it is being used.
7171
external_config_db_exists="False"
72-
if [ -n "${PGADMIN_CONFIG_CONFIG_DATABASE_URI}" ]; then
72+
if [[ -n $PGADMIN_CONFIG_CONFIG_DATABASE_URI ]]; then
7373
external_config_db_exists=$(cd /pgadmin4/pgadmin/utils && /venv/bin/python3 -c "from check_external_config_db import check_external_config_db; val = check_external_config_db("${PGADMIN_CONFIG_CONFIG_DATABASE_URI}"); print(val)")
7474
fi
7575

@@ -79,44 +79,44 @@ function load_server_json_file() {
7979

8080
EXTRA_ARGS=""
8181

82-
if [ "${PGADMIN_REPLACE_SERVERS_ON_STARTUP}" = "True" ]; then
82+
if [[ $PGADMIN_REPLACE_SERVERS_ON_STARTUP == 'True' ]]; then
8383
EXTRA_ARGS="--replace"
8484
fi
8585

86-
if [ -f "${PGADMIN_SERVER_JSON_FILE}" ]; then
86+
if [[ -f $PGADMIN_SERVER_JSON_FILE ]]; then
8787
# When running in Desktop mode, no user is created
8888
# so we have to import servers anonymously
89-
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
89+
if [[ $PGADMIN_CONFIG_SERVER_MODE == 'False' ]]; then
9090
/venv/bin/python3 /pgadmin4/setup.py load-servers "${PGADMIN_SERVER_JSON_FILE}" ${EXTRA_ARGS}
9191
else
9292
/venv/bin/python3 /pgadmin4/setup.py load-servers "${PGADMIN_SERVER_JSON_FILE}" --user "${PGADMIN_DEFAULT_EMAIL}" ${EXTRA_ARGS}
9393
fi
9494
fi
9595
}
9696

97-
if [ ! -f /var/lib/pgadmin/pgadmin4.db ] && [ "${external_config_db_exists}" = "False" ]; then
98-
if [ -z "${PGADMIN_DEFAULT_EMAIL}" ] || { [ -z "${PGADMIN_DEFAULT_PASSWORD}" ] && [ -z "${PGADMIN_DEFAULT_PASSWORD_FILE}" ]; }; then
97+
if [[ ! -f /var/lib/pgadmin/pgadmin4.db && $external_config_db_exists == 'False' ]]; then
98+
if [[ -z $PGADMIN_DEFAULT_EMAIL || (-z $PGADMIN_DEFAULT_PASSWORD && -z $PGADMIN_DEFAULT_PASSWORD_FILE) ]]; then
9999
echo 'You need to define the PGADMIN_DEFAULT_EMAIL and PGADMIN_DEFAULT_PASSWORD or PGADMIN_DEFAULT_PASSWORD_FILE environment variables.'
100100
exit 1
101101
fi
102102

103103
# Validate PGADMIN_DEFAULT_EMAIL
104104
CHECK_EMAIL_DELIVERABILITY="False"
105-
if [ -n "${PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY}" ]; then
105+
if [[ -n $PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY ]]; then
106106
CHECK_EMAIL_DELIVERABILITY=${PGADMIN_CONFIG_CHECK_EMAIL_DELIVERABILITY}
107107
fi
108108
ALLOW_SPECIAL_EMAIL_DOMAINS="[]"
109-
if [ -n "${PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS}" ]; then
109+
if [[ -n $PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS ]]; then
110110
ALLOW_SPECIAL_EMAIL_DOMAINS=${PGADMIN_CONFIG_ALLOW_SPECIAL_EMAIL_DOMAINS}
111111
fi
112112
GLOBALLY_DELIVERABLE="True"
113-
if [ -n "${PGADMIN_CONFIG_GLOBALLY_DELIVERABLE}" ]; then
113+
if [[ -n $PGADMIN_CONFIG_GLOBALLY_DELIVERABLE ]]; then
114114
GLOBALLY_DELIVERABLE=${PGADMIN_CONFIG_GLOBALLY_DELIVERABLE}
115115
fi
116116
email_config="{'CHECK_EMAIL_DELIVERABILITY': ${CHECK_EMAIL_DELIVERABILITY}, 'ALLOW_SPECIAL_EMAIL_DOMAINS': ${ALLOW_SPECIAL_EMAIL_DOMAINS}, 'GLOBALLY_DELIVERABLE': ${GLOBALLY_DELIVERABLE}}"
117117
echo "email config is ${email_config}"
118118
is_valid_email=$(cd /pgadmin4/pgadmin/utils && /venv/bin/python3 -c "from validation_utils import validate_email; val = validate_email('${PGADMIN_DEFAULT_EMAIL}', ${email_config}); print(val)")
119-
if echo "${is_valid_email}" | grep "False" > /dev/null; then
119+
if echo "${is_valid_email}" | grep "False" &>/dev/null; then
120120
echo "'${PGADMIN_DEFAULT_EMAIL}' does not appear to be a valid email address. Please reset the PGADMIN_DEFAULT_EMAIL environment variable and try again."
121121
echo "Validation output: ${is_valid_email}"
122122
exit 1
@@ -139,17 +139,17 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ] && [ "${external_config_db_exists}" = "
139139
load_server_json_file
140140

141141
# Pre-load any required preferences
142-
if [ -f "${PGADMIN_PREFERENCES_JSON_FILE}" ]; then
143-
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
142+
if [[ -f $PGADMIN_PREFERENCES_JSON_FILE ]]; then
143+
if [[ $PGADMIN_CONFIG_SERVER_MODE == 'False' ]]; then
144144
DESKTOP_USER=$(cd /pgadmin4 && /venv/bin/python3 -c 'import config; print(config.DESKTOP_USER)')
145145
/venv/bin/python3 /pgadmin4/setup.py set-prefs "${DESKTOP_USER}" --input-file "${PGADMIN_PREFERENCES_JSON_FILE}"
146146
else
147147
/venv/bin/python3 /pgadmin4/setup.py set-prefs "${PGADMIN_DEFAULT_EMAIL}" --input-file "${PGADMIN_PREFERENCES_JSON_FILE}"
148148
fi
149149
fi
150150
# Copy the pgpass file passed using secrets
151-
if [ -f "${PGPASS_FILE}" ]; then
152-
if [ "${PGADMIN_CONFIG_SERVER_MODE}" = "False" ]; then
151+
if [[ -f $PGPASS_FILE ]]; then
152+
if [[ $PGADMIN_CONFIG_SERVER_MODE == 'False' ]]; then
153153
cp ${PGPASS_FILE} /var/lib/pgadmin/.pgpass
154154
chmod 600 /var/lib/pgadmin/.pgpass
155155
else
@@ -160,12 +160,12 @@ if [ ! -f /var/lib/pgadmin/pgadmin4.db ] && [ "${external_config_db_exists}" = "
160160
fi
161161
fi
162162
# If already initialised and PGADMIN_REPLACE_SERVERS_ON_STARTUP is set to true, then load the server json file.
163-
elif [ "${PGADMIN_REPLACE_SERVERS_ON_STARTUP}" = "True" ]; then
163+
elif [[ $PGADMIN_REPLACE_SERVERS_ON_STARTUP == 'True' ]]; then
164164
load_server_json_file
165165
fi
166166

167167
# Start Postfix to handle password resets etc.
168-
if [ -z "${PGADMIN_DISABLE_POSTFIX}" ]; then
168+
if [[ -z $PGADMIN_DISABLE_POSTFIX ]]; then
169169
sudo /usr/sbin/postfix start
170170
fi
171171

@@ -176,17 +176,17 @@ TIMEOUT=$(cd /pgadmin4 && /venv/bin/python3 -c 'import config; print(config.SESS
176176
# NOTE: currently pgadmin can run only with 1 worker due to sessions implementation
177177
# Using --threads to have multi-threaded single-process worker
178178

179-
if [ -n "${PGADMIN_ENABLE_SOCK}" ]; then
179+
if [[ -n $PGADMIN_ENABLE_SOCK ]]; then
180180
BIND_ADDRESS="unix:/run/pgadmin/pgadmin.sock"
181181
else
182-
if [ -n "${PGADMIN_ENABLE_TLS}" ]; then
182+
if [[ -n $PGADMIN_ENABLE_TLS ]]; then
183183
BIND_ADDRESS="${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-443}"
184184
else
185185
BIND_ADDRESS="${PGADMIN_LISTEN_ADDRESS:-[::]}:${PGADMIN_LISTEN_PORT:-80}"
186186
fi
187187
fi
188188

189-
if [ -n "${PGADMIN_ENABLE_TLS}" ]; then
189+
if [[ -n $PGADMIN_ENABLE_TLS ]]; then
190190
exec /venv/bin/gunicorn --limit-request-line "${GUNICORN_LIMIT_REQUEST_LINE:-8190}" --timeout "${TIMEOUT}" --bind "${BIND_ADDRESS}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" --keyfile /certs/server.key --certfile /certs/server.cert -c gunicorn_config.py run_pgadmin:app
191191
else
192192
exec /venv/bin/gunicorn --limit-request-line "${GUNICORN_LIMIT_REQUEST_LINE:-8190}" --limit-request-fields "${GUNICORN_LIMIT_REQUEST_FIELDS:-100}" --limit-request-field_size "${GUNICORN_LIMIT_REQUEST_FIELD_SIZE:-8190}" --timeout "${TIMEOUT}" --bind "${BIND_ADDRESS}" -w 1 --threads "${GUNICORN_THREADS:-25}" --access-logfile "${GUNICORN_ACCESS_LOGFILE:--}" -c gunicorn_config.py run_pgadmin:app

0 commit comments

Comments
 (0)