#!/bin/bash
set -e

# This script installs a python3 virtualenv called 'zulip-py3-venv' in zulip's parent directory.
# It then installs mypy and some other dependencies into that virtualenv.
# This script has been written for Ubuntu. If you want to install it on some other distro
# replace these commands with the corresponding commands for your distro.
# (for e.g. on Fedora replace apt-get with yum or dnf)

TOOLS_DIR=$(dirname "$0")
PY3_VENV_PATH="/srv/zulip-py3-venv"

if ! which python3 >/dev/null || ! which virtualenv >/dev/null; then
    if which apt-get; then
        sudo apt-get install -y python3 python-virtualenv
    else
        echo "Please install python3 and python-virtualenv."
        exit 1
    fi
fi

# create venv if required
if [ -d "$PY3_VENV_PATH" ]; then
    echo "found virtualenv $PY3_VENV_PATH"
else
    echo "creating virtualenv $PY3_VENV_PATH"
    sudo virtualenv -p python3 "$PY3_VENV_PATH"
fi
source "$PY3_VENV_PATH/bin/activate"

# install mypy
sudo "$PY3_VENV_PATH/bin/pip3" install --upgrade pip
sudo "$PY3_VENV_PATH/bin/pip3" install --upgrade --no-deps -r "$TOOLS_DIR/../requirements/mypy.txt"
