#!/usr/bin/env bash BASEDIR=$(dirname `dirname $0`) VENVEXECDIR="bin" PYVERSION=$(python -V | grep -Po '(?<=Python ).+') PYCUSTOMPATH_ARG="" while getopts "hp:" arg; do case "$arg" in h) echo "USAGE: $0 [-p ]" exit ;; p) PYCUSTOMPATH_ARG="-p $OPTARG" PYVERSION=$("$OPTARG" "-V" 2>&1 | grep -Po '(?<=Python ).+') ;; esac done VENVDIR="zulip-api-py$PYVERSION-venv" if [ ! -d "$BASEDIR/$VENVDIR" ]; then virtualenv $PYCUSTOMPATH_ARG "$BASEDIR/$VENVDIR" echo "Virtualenv created." fi if [[ ! -d "$BASEDIR/$VENVDIR/$VENVEXECDIR" ]]; then # POSIX compatibility layer and Linux environment emulation for Windows # Virtual uses /Scripts instead of /bin on Windows. # Read https://virtualenv.pypa.io/en/stable/userguide/ VENVEXECDIR="Scripts" fi source "$BASEDIR/$VENVDIR/$VENVEXECDIR/activate" RVAL=$? if [ "$RVAL" -ne 0 ]; then echo "Failed to activate virtualenv." exit fi # Install python dependencies if needed. cmp "$BASEDIR/$VENVDIR/installed-requirements.txt" requirements.txt 2>/dev/null RVAL=$? # Return value of the comparision. 0 means files are same. if [ "$RVAL" -ne 0 ]; then pip install -r "$BASEDIR/requirements.txt" cp -a requirements.txt "$BASEDIR/$VENVDIR/installed-requirements.txt" echo "Requirements installed." fi echo 'Success! Run `source' "$BASEDIR/$VENVDIR/$VENVEXECDIR/activate"'`' "to activate virtualenv."