100 lines
2.6 KiB
Bash
100 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
line_sep="==============================="
|
|
|
|
cur_dir="$(cd "$( dirname "$0")" && pwd)"
|
|
proj_dir="$(cd "$(dirname "$cur_dir")" && pwd)"
|
|
init_venv_script="$proj_dir/scripts/init_venv.sh"
|
|
venv_activate_path="$proj_dir/venv/bin/activate"
|
|
check_python_dev_script="$proj_dir/scripts/check_py_dev.py"
|
|
render_docker_compose_template_script="$proj_dir/docker/bin/render_docker_templates.sh"
|
|
python="python3.9"
|
|
|
|
# is python 3.9 installed?
|
|
if ! command -v $python &> /dev/null; then
|
|
echo "$line_sep"
|
|
echo "Installing python 3.9..."
|
|
echo "$line_sep"
|
|
# fail if something goes wrong
|
|
sudo apt-get install python3.9 python3.9-dev || (echo "Failed to install python3.9" && exit 1)
|
|
|
|
echo "$line_sep"
|
|
echo "Installed python 3.9"
|
|
echo "$line_sep"
|
|
fi
|
|
|
|
# is python dev installed?
|
|
if ! command -v "$check_python_dev_script" &> /dev/null; then
|
|
echo "python3.9-dev already installed"
|
|
# install python3.9-dev
|
|
else
|
|
echo "Installing python3.9-dev..."
|
|
sudo apt-get install python3.9-dev || (echo "Failed to install python3.9-dev" && exit 1)
|
|
|
|
echo "$line_sep"
|
|
echo "Installed python 3.9-dev"
|
|
echo "$line_sep"
|
|
fi
|
|
|
|
|
|
# is pip installed?
|
|
if [[ $(python3.9 -m pip 2>&1) == *"No module named pip" ]]; then
|
|
echo "Installing python3 pip..."
|
|
curl https://bootstrap.pypa.io/get-pip.py -o /tmp/get-pip.py || (echo "Failed to download get-pip.py" && exit 1)
|
|
$python /tmp/get-pip.py || (echo "get-pip.py failed to run" && exit 1)
|
|
fi
|
|
|
|
|
|
# make sure that the virtualenv package is installed
|
|
virtualenv_exists="$($python -m pip list | grep -F "virtualenv" | xargs)"
|
|
virtualenv_exists=${#virtualenv_exists}
|
|
|
|
# if the python virtualenv package in not installed, install it
|
|
if [[ "$virtualenv_exists" -eq 0 ]]; then
|
|
echo "$line_sep"
|
|
echo "Installing python virtualenv..."
|
|
echo "$line_sep"
|
|
|
|
$python -m pip install virtualenv
|
|
|
|
echo "$line_sep"
|
|
echo "Installed python virtualenv"
|
|
echo "$line_sep"
|
|
fi
|
|
|
|
echo "
|
|
$line_sep
|
|
Creating python virtual environment
|
|
$line_sep"
|
|
|
|
$init_venv_script || (echo "Failed to create virtual environment. Is python3.9-dev installed?" && exit 1)
|
|
|
|
echo "
|
|
$line_sep
|
|
Done creating python virtual environment
|
|
$line_sep
|
|
|
|
$line_sep
|
|
Activating the python virtual environment
|
|
$line_sep"
|
|
|
|
source "$venv_activate_path" || (echo "Failed to source the python virtual environment" && exit 1)
|
|
|
|
echo "
|
|
$line_sep
|
|
Python virtual environment activated
|
|
$line_sep
|
|
|
|
$line_sep
|
|
Rendering the docker compose template
|
|
$line_sep"
|
|
|
|
$render_docker_compose_template_script || (echo "Failed to render the docker compose file" && exit 1)
|
|
|
|
echo "
|
|
$line_sep
|
|
Rendered the docker compose file
|
|
$line_sep
|
|
|
|
Done!"
|