cal/entrypoint.sh

54 lines
1.6 KiB
Bash

#!/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 "EMAIL_SERVER_PASSWORD"
file_env "NEXTAUTH_SECRET"
file_env "CALENDSO_ENCRYPTION_KEY"
file_env "GOOGLE_API_CREDENTIALS"
file_env "MS_GRAPH_CLIENT_SECRET"
file_env "ZOOM_CLIENT_SECRET"
file_env "OIDCDB_PASSWORD"
export "DATABASE_URL=postgresql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:5432/$POSTGRES_DB"
export "SAML_DATABASE_URL=postgresql://$OIDCDB_USER:$OIDCDB_PASSWORD@$OIDCDB_HOST:5432/$OIDC_DB"
}
main() {
set -eu
load_vars
}
main
# 3wc: upstream CMD
# https://github.com/calendso/docker/blob/main/Dockerfile
/calcom/scripts/start.sh