mirror of
https://github.com/getsentry/self-hosted.git
synced 2025-12-08 19:46:14 +00:00
* Reference paths relative to the current script or project root Before this PR: - some scripts change the current working directory and use relative paths - different approaches are taken to know which directory a script is running in - paths are sometimes relative, sometimes absolute, sometimes traversing directories After this PR: - scripts do neither change nor care much about the current working directory - a unified approach determines the directory of the current script - paths are always relative to the project root This should resolve an issue I already tried to fix with https://github.com/getsentry/self-hosted/pull/1798, where the contents of `./sentry` were not copied into the built container image, thus `enhance-image.sh` did not apply. Co-authored-by: Amin Vakil <info@aminvakil.com>
43 lines
1.6 KiB
Bash
43 lines
1.6 KiB
Bash
echo "${_group}Ensuring Relay credentials ..."
|
|
|
|
RELAY_CONFIG_YML=relay/config.yml
|
|
RELAY_CREDENTIALS_JSON=relay/credentials.json
|
|
|
|
ensure_file_from_example $RELAY_CONFIG_YML
|
|
|
|
if [[ -f "$RELAY_CREDENTIALS_JSON" ]]; then
|
|
echo "$RELAY_CREDENTIALS_JSON already exists, skipped creation."
|
|
else
|
|
|
|
# There are a couple gotchas here:
|
|
#
|
|
# 1. We need to use a tmp file because if we redirect output directly to
|
|
# credentials.json, then the shell will create an empty file that relay
|
|
# will then try to read from (regardless of options such as --stdout or
|
|
# --overwrite) and fail because it is empty.
|
|
#
|
|
# 2. We pull relay:nightly before invoking `run relay credentials generate`
|
|
# because an implicit pull under the run causes extra stdout that results
|
|
# in a garbage credentials.json.
|
|
#
|
|
# 3. We need to use -T to ensure that we receive output on Docker Compose
|
|
# 1.x and 2.2.3+ (funny story about that ... ;). Note that the long opt
|
|
# --no-tty doesn't exist in Docker Compose 1.
|
|
|
|
$dc pull relay
|
|
creds="$dcr --no-deps -T relay credentials"
|
|
$creds generate --stdout >"$RELAY_CREDENTIALS_JSON".tmp
|
|
mv "$RELAY_CREDENTIALS_JSON".tmp "$RELAY_CREDENTIALS_JSON"
|
|
if ! grep -q Credentials <($creds show); then
|
|
# Let's fail early if creds failed, to make debugging easier.
|
|
echo "Failed to create relay credentials in $RELAY_CREDENTIALS_JSON."
|
|
echo "--- credentials.json v ---------------------------------------"
|
|
cat -v "$RELAY_CREDENTIALS_JSON" || true
|
|
echo "--- credentials.json ^ ---------------------------------------"
|
|
exit 1
|
|
fi
|
|
echo "Relay credentials written to $RELAY_CREDENTIALS_JSON."
|
|
fi
|
|
|
|
echo "${_endgroup}"
|