mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
77 lines
1.9 KiB
Plaintext
77 lines
1.9 KiB
Plaintext
# This script is meant to be sourced by bash, not executed.
|
|
# As such, don't use exit, use return.
|
|
|
|
# This script is purely a python virtualenv bootstrap, not the entire development environment.
|
|
# For the entire thing, you should still use make bootstrap.
|
|
# Eventually, the goal would be to have an idempotent single script that does
|
|
# everything make bootstrap does and more (system dependencies and so on).
|
|
|
|
# So just going to sprinkle returns everywhere.
|
|
|
|
SCRIPTS_DIR="$(
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
pwd -P
|
|
)"
|
|
source "${SCRIPTS_DIR}/lib.sh"
|
|
configure-sentry-cli
|
|
|
|
command -v pyenv >/dev/null || {
|
|
echo "You need to install pyenv. https://develop.sentry.dev/environment/#python"
|
|
return 1
|
|
}
|
|
|
|
command -v direnv >/dev/null || {
|
|
echo "You need to install direnv. https://develop.sentry.dev/environment/#direnv"
|
|
return 1
|
|
}
|
|
|
|
# This executes very quickly if the Python versions are already installed
|
|
# This calling approach activates pyenv correctly -> eval "$(pyenv init --path)"
|
|
. "$SCRIPTS_DIR/pyenv_setup.sh"
|
|
venv_name="${PWD}/.venv"
|
|
|
|
if [[ -f "${venv_name}/bin/activate" ]]; then
|
|
echo "You have an existing virtualenv. This script will OVERWRITE it. Continue (y/N)?"
|
|
read resp
|
|
case "$resp" in
|
|
y | Y) echo "Okay, let's do this." ;;
|
|
*)
|
|
echo "Aborted!"
|
|
return 1
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
deactivate 2>/dev/null || true
|
|
rm -rf "$venv_name"
|
|
|
|
if [ -z "${SENTRY_PYTHON_VERSION-}" ] && ! query-valid-python-version; then
|
|
echo "Your python3 version isn't as expected. Please run: make setup-pyenv"
|
|
return 1
|
|
fi
|
|
|
|
python3 -m venv "${venv_name}" || {
|
|
echo "bootstrap failed!"
|
|
return 1
|
|
}
|
|
source "${venv_name}/bin/activate" || {
|
|
echo "bootstrap failed!"
|
|
return 1
|
|
}
|
|
make install-py-dev || {
|
|
echo "bootstrap failed!"
|
|
return 1
|
|
}
|
|
make setup-git || {
|
|
echo "bootstrap failed!"
|
|
return 1
|
|
}
|
|
deactivate || {
|
|
echo "bootstrap failed!"
|
|
return 1
|
|
}
|
|
direnv allow || {
|
|
echo "bootstrap failed!"
|
|
return 1
|
|
}
|