|
2 | 2 |
|
3 | 3 | # Fixup the passwd file, in case we're on OpenShift |
4 | 4 | if ! whoami &>/dev/null && [[ $(id -u) != 5050 && -w /etc/passwd ]]; then |
5 | | - echo "${USER_NAME:-pgadminr}:x:$(id -u):0:${USER_NAME:-pgadminr} user:${HOME}:/sbin/nologin" >> /etc/passwd |
| 5 | + echo "${USER_NAME:-pgadminr}:x:$(id -u):0:${USER_NAME:-pgadminr} user:${HOME}:/sbin/nologin" >> /etc/passwd |
6 | 6 | fi |
7 | 7 |
|
8 | 8 | # usage: file_env VAR [DEFAULT] ie: file_env 'XYZ_DB_PASSWORD' 'example' |
9 | 9 | # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of |
10 | 10 | # "$XYZ_DB_PASSWORD" from a file, for Docker's secrets feature) |
11 | 11 | function file_env() { |
12 | | - local var="$1" |
13 | | - local fileVar="${var}_FILE" |
14 | | - local def="${2:-}" |
15 | | - if [[ -n ${!var:-} && -n ${!fileVar:-} ]]; then |
16 | | - printf >&2 'error: both %s and %s are set (but are exclusive)\n' "$var" "$fileVar" |
17 | | - exit 1 |
18 | | - fi |
19 | | - local val="$def" |
20 | | - if [[ -n ${!var:-} ]]; then |
21 | | - val="${!var}" |
22 | | - elif [[ -n ${!fileVar:-} ]]; then |
23 | | - val="$(< "${!fileVar}")" |
24 | | - fi |
25 | | - export "$var"="$val" |
26 | | - unset "$fileVar" |
| 12 | + local var="$1" |
| 13 | + local fileVar="${var}_FILE" |
| 14 | + local def="${2:-}" |
| 15 | + if [[ -n ${!var:-} && -n ${!fileVar:-} ]]; then |
| 16 | + printf >&2 'error: both %s and %s are set (but are exclusive)\n' "$var" "$fileVar" |
| 17 | + exit 1 |
| 18 | + fi |
| 19 | + local val="$def" |
| 20 | + if [[ -n ${!var:-} ]]; then |
| 21 | + val="${!var}" |
| 22 | + elif [[ -n ${!fileVar:-} ]]; then |
| 23 | + val="$(< "${!fileVar}")" |
| 24 | + fi |
| 25 | + export "$var"="$val" |
| 26 | + unset "$fileVar" |
27 | 27 | } |
28 | 28 |
|
29 | 29 | # Set values for config variables that can be passed using secrets |
30 | 30 | if [[ -n $PGADMIN_CONFIG_CONFIG_DATABASE_URI_FILE ]]; then |
31 | | - file_env PGADMIN_CONFIG_CONFIG_DATABASE_URI |
| 31 | + file_env PGADMIN_CONFIG_CONFIG_DATABASE_URI |
32 | 32 | fi |
33 | 33 | file_env PGADMIN_DEFAULT_PASSWORD |
34 | 34 |
|
|
66 | 66 | # Check whether the external configuration database exists if it is being used. |
67 | 67 | external_config_db_exists="False" |
68 | 68 | if [[ -n $PGADMIN_CONFIG_CONFIG_DATABASE_URI ]]; then |
69 | | - 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)") |
| 69 | + 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)") |
70 | 70 | fi |
71 | 71 |
|
72 | 72 | # DRY of the code to load the PGADMIN_SERVER_JSON_FILE |
@@ -109,14 +109,14 @@ if [[ ! -f /var/lib/pgadmin/pgadmin4.db && $external_config_db_exists == 'False' |
109 | 109 | if [[ -n $PGADMIN_CONFIG_GLOBALLY_DELIVERABLE ]]; then |
110 | 110 | GLOBALLY_DELIVERABLE=${PGADMIN_CONFIG_GLOBALLY_DELIVERABLE} |
111 | 111 | fi |
112 | | - email_config="{'CHECK_EMAIL_DELIVERABILITY': ${CHECK_EMAIL_DELIVERABILITY}, 'ALLOW_SPECIAL_EMAIL_DOMAINS': ${ALLOW_SPECIAL_EMAIL_DOMAINS}, 'GLOBALLY_DELIVERABLE': ${GLOBALLY_DELIVERABLE}}" |
113 | | - echo "email config is ${email_config}" |
114 | | - 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)") |
115 | | - if echo "${is_valid_email}" | grep "False" &>/dev/null; then |
116 | | - echo "'${PGADMIN_DEFAULT_EMAIL}' does not appear to be a valid email address. Please reset the PGADMIN_DEFAULT_EMAIL environment variable and try again." |
117 | | - echo "Validation output: ${is_valid_email}" |
118 | | - exit 1 |
119 | | - fi |
| 112 | + email_config="{'CHECK_EMAIL_DELIVERABILITY': ${CHECK_EMAIL_DELIVERABILITY}, 'ALLOW_SPECIAL_EMAIL_DOMAINS': ${ALLOW_SPECIAL_EMAIL_DOMAINS}, 'GLOBALLY_DELIVERABLE': ${GLOBALLY_DELIVERABLE}}" |
| 113 | + echo "email config is ${email_config}" |
| 114 | + 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)") |
| 115 | + if echo "${is_valid_email}" | grep "False" &>/dev/null; then |
| 116 | + echo "'${PGADMIN_DEFAULT_EMAIL}' does not appear to be a valid email address. Please reset the PGADMIN_DEFAULT_EMAIL environment variable and try again." |
| 117 | + echo "Validation output: ${is_valid_email}" |
| 118 | + exit 1 |
| 119 | + fi |
120 | 120 | # Switch back to root directory for further process |
121 | 121 | cd /pgadmin4 |
122 | 122 |
|
|
0 commit comments