2021-08-10 14:43:48 +00:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
|
|
|
|
# usage: file_env VAR [DEFAULT]
|
|
|
|
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
|
|
|
|
# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
|
|
|
|
# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
|
|
|
|
# https://git.chihiro.org.cn/GitHub/nextcloud-docker/commit/530edd68aa6bc3bc493dd7c96f673239edeef130
|
|
|
|
file_env() {
|
|
|
|
var="$1"
|
|
|
|
fileVar="${var}_FILE"
|
|
|
|
def="${2:-}"
|
|
|
|
varValue=$(env | grep -E "^${var}=" | sed -E -e "s/^${var}=//")
|
|
|
|
fileVarValue=$(env | grep -E "^${fileVar}=" | sed -E -e "s/^${fileVar}=//")
|
|
|
|
if [ -n "${varValue}" ] && [ -n "${fileVarValue}" ]; then
|
|
|
|
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
if [ -n "${varValue}" ]; then
|
|
|
|
export "$var"="${varValue}"
|
|
|
|
elif [ -n "${fileVarValue}" ]; then
|
|
|
|
export "$var"="$(cat "${fileVarValue}")"
|
|
|
|
elif [ -n "${def}" ]; then
|
|
|
|
export "$var"="$def"
|
|
|
|
fi
|
|
|
|
unset "$fileVar"
|
|
|
|
}
|
|
|
|
|
|
|
|
load_vars() {
|
|
|
|
file_env "POSTGRES_PASSWORD"
|
|
|
|
file_env "GOOGLE_API_CREDENTIALS"
|
|
|
|
file_env "ZOOM_CLIENT_SECRET"
|
|
|
|
file_env "EMAIL_SERVER_PASSWORD"
|
|
|
|
|
|
|
|
export "DATABASE_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB"
|
|
|
|
}
|
|
|
|
|
|
|
|
main() {
|
|
|
|
set -eu
|
|
|
|
|
|
|
|
load_vars
|
2022-10-18 21:27:02 +00:00
|
|
|
|
|
|
|
if [ ! "${1-}" = "-e" ]; then
|
|
|
|
# 3wc: upstream CMD
|
|
|
|
# https://github.com/calendso/docker/blob/main/Dockerfile
|
|
|
|
/app/scripts/start.sh
|
|
|
|
fi
|
2021-08-10 14:43:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
main
|