amqtt/scripts/run-in-env.sh

45 wiersze
1.2 KiB
Bash
Czysty Zwykły widok Historia

#!/usr/bin/env bash
set -eu
# Enable debug mode if DEBUG=true is set in the environment
DEBUG=${DEBUG:-false}
if [ "$DEBUG" = "true" ]; then
set -x
fi
# Resolve project root directory
my_path=$(git rev-parse --show-toplevel)
# Activate pyenv virtualenv if .python-version exists
if [ -s "${my_path}/.python-version" ]; then
PYENV_VERSION=$(head -n 1 "${my_path}/.python-version")
if command -v pyenv >/dev/null 2>&1; then
export PYENV_VERSION
echo "Activating pyenv version: ${PYENV_VERSION}" >&2
else
echo "Warning: pyenv not found, skipping pyenv activation." >&2
fi
fi
# Check for and activate common virtual environments
venvs=("venv" ".venv")
for venv in "${venvs[@]}"; do
activate_script="${my_path}/${venv}/bin/activate"
if [ -f "$activate_script" ]; then
echo "Activating virtual environment: ${venv}" >&2
# Deactivate any existing venv and activate the new one
deactivate 2>/dev/null || true
# shellcheck source=/dev/null
. "$activate_script"
break
fi
done
# Check if we are in a virtual environment
if [ -z "${VIRTUAL_ENV:-}" ]; then
echo "Warning: No virtual environment found. Running in global Python environment." >&2
fi
# Execute the specified command
exec "$@"