diff --git a/abra.sh b/abra.sh index 44b93ed..ddcc400 100644 --- a/abra.sh +++ b/abra.sh @@ -3,3 +3,45 @@ export MAILMAN_EXTRA_CFG_VERSION=v1 export NGINX_CONF_VERSION=v1 export SETTINGS_LOCAL_VERSION=v2 export WEB_ENTRYPOINT_CONF_VERSION=v1 + + +file_env() { + local var="$1" + local fileVar="${var}_FILE" + local def="${2:-}" + + if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then + echo >&2 "error: both $var and $fileVar are set (but are exclusive)" + exit 1 + fi + + local val="$def" + if [ "${!var:-}" ]; then + val="${!var}" + elif [ "${!fileVar:-}" ]; then + val="$(< "${!fileVar}")" + fi + + declare -x -g "$var"="$val" + unset "$fileVar" +} + +environment() { + file_env "DATABASE_PASSWORD" + file_env "HYPERKITTY_API_KEY" + file_env "MAILMAN_REST_PASSWORD" + file_env "SECRET_KEY" + + declare -x DATABASE_URL="postgres://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}/${DATABASE_NAME}" +} + +shell() { + ## Run a shell with proper environment + environment + bash $@ +} + +manage() { + environment + python3 manage.py $@ +}