#!/usr/bin/env bash

readonly RUN_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
readonly REDASH_HOME_DIR="$(readlink -ev "${RUN_DIR}/../..")"

if [[ ! -e "${REDASH_HOME_DIR}/.env" ]]; then
    # exitcode 123 is configured in Redash systemd unit files to be "expected", i.e. systemd will not restart
    # the process if it exits with this return code
    # this allows Redash to cleanly exit when it's not configured yet
    exit 123
fi

TEMP_ENV_FILE=$(mktemp --tmpdir redash_env.XXXXXX)
sed 's/^REDASH/export REDASH/' "${REDASH_HOME_DIR}/.env" > "${TEMP_ENV_FILE}"
# shellcheck source=/dev/null
source "${TEMP_ENV_FILE}"
rm "${TEMP_ENV_FILE}"

# shellcheck source=/dev/null
source "${REDASH_HOME_DIR}/venv/bin/activate"
export PYTHONPATH="${REDASH_HOME_DIR}/src${PYTHONPATH:+:$PYTHONPATH}"

exec "$@"
