33 lines
835 B
Bash
33 lines
835 B
Bash
venv_dir=".venv"
|
|
currentvenv=""
|
|
get_project_root() {
|
|
local current_dir="$PWD"
|
|
while [[ "$current_dir" != "" && ! -d "$current_dir/$venv_dir" ]]; do
|
|
current_dir=${current_dir%/*}
|
|
done
|
|
echo "$current_dir"
|
|
}
|
|
|
|
root_dir=$(get_project_root)
|
|
|
|
if [[ -z "$root_dir" || ! -d "$root_dir/$venv_dir" ]]; then
|
|
echo "Unable to find the virtual environment folder."
|
|
return
|
|
fi
|
|
|
|
if [[ $VIRTUAL_ENV != "" ]]; then
|
|
currentvenv="${VIRTUAL_ENV##*/}"
|
|
fi
|
|
|
|
if [[ "$currentvenv" != "$venv_dir" ]]; then
|
|
python_version=$(python3 --version 2>&1)
|
|
echo "Switching to environment: $venv_dir | $python_version"
|
|
source "$root_dir/$venv_dir/bin/activate"
|
|
fi
|
|
|
|
pip freeze > requirements.txt
|
|
sed -i "" -e "s/==/>=/" requirements.txt
|
|
pip install --upgrade pip
|
|
pip -q install -r requirements.txt
|
|
echo "Updated pip packages."
|
|
|