mirror of
https://github.com/getsentry/self-hosted.git
synced 2025-12-08 19:46:14 +00:00
60 lines
2.1 KiB
Bash
60 lines
2.1 KiB
Bash
# Allow `.env` overrides using the `.env.custom` file.
|
|
# We pass this to docker compose in a couple places.
|
|
if [[ -f .env.custom ]]; then
|
|
_ENV=.env.custom
|
|
else
|
|
_ENV=.env
|
|
fi
|
|
|
|
# Reading .env.custom has to come first. The value won't be overriden, instead
|
|
# it would persist because of `export -p> >"$t"` later, which exports current
|
|
# environment variables to a temporary file with a `declare -x KEY=value` format.
|
|
# The new values on `.env` would be set only if they are not already set.
|
|
if [[ "$_ENV" == ".env.custom" ]]; then
|
|
q=$(mktemp) && export -p >"$q" && set -a && . ".env.custom" && set +a && . "$q" && rm "$q" && unset q
|
|
fi
|
|
|
|
# Read .env for default values with a tip o' the hat to https://stackoverflow.com/a/59831605/90297
|
|
t=$(mktemp) && export -p >"$t" && set -a && . ".env" && set +a && . "$t" && rm "$t" && unset t
|
|
|
|
if [ "${GITHUB_ACTIONS:-}" = "true" ]; then
|
|
_group="::group::"
|
|
_endgroup="::endgroup::"
|
|
else
|
|
_group="▶ "
|
|
_endgroup=""
|
|
fi
|
|
|
|
# A couple of the config files are referenced from other subscripts, so they
|
|
# get vars, while multiple subscripts call ensure_file_from_example.
|
|
function ensure_file_from_example {
|
|
target="$1"
|
|
if [[ -f "$target" ]]; then
|
|
echo "$target already exists, skipped creation."
|
|
else
|
|
# sed from https://stackoverflow.com/a/25123013/90297
|
|
# shellcheck disable=SC2001
|
|
example="$(echo "$target" | sed 's/\.[^.]*$/.example&/')"
|
|
if [[ ! -f "$example" ]]; then
|
|
echo "Oops! Where did $example go? 🤨 We need it in order to create $target."
|
|
exit
|
|
fi
|
|
echo "Creating $target ..."
|
|
cp -n "$example" "$target"
|
|
fi
|
|
}
|
|
|
|
# Check the version of $1 is greater than or equal to $2 using sort. Note: versions must be stripped of "v"
|
|
function vergte() {
|
|
printf "%s\n%s" "$1" "$2" | sort --version-sort --check=quiet --reverse
|
|
}
|
|
|
|
export SENTRY_CONFIG_PY=sentry/sentry.conf.py
|
|
export SENTRY_CONFIG_YML=sentry/config.yml
|
|
|
|
# Increase the default 10 second SIGTERM timeout
|
|
# to ensure task queues are properly drained
|
|
# between upgrades as task signatures may change across
|
|
# versions
|
|
export STOP_TIMEOUT=60 # seconds
|