#!/usr/bin/env bash


# check below if VIRTUAL_ENV is set
if [ -z "$VIRTUAL_ENV" ]; then  # no active ve ==> activate one.
  if [ -z "$1" ]; then  # nothing passed, activate default
    if [ -f ~/.machineconfig/default_ve ]; then  # check if there is a default ve stored in ~/.machineconfog/default_ve
      name=$(cat ~/.machineconfig/default_ve)  # if yes, use it
      source $name/bin/activate
    else  # no default ve found, using ve and setting it as default
      name="ve"
      source ~/venvs/$name/bin/activate
      mkdir ~/.machineconfig || true
      echo $VIRTUAL_ENV > ~/.machineconfig/default_ve
    fi
  else
    name=$1
    source ~/venvs/$name/bin/activate
  fi
  echo "Activated virtual environment $VIRTUAL_ENV "

else
  # check if $1 is passed, if yes, activate it
  if [ -n "$1" ]; then
    echo "Deactivating virtual environment $VIRTUAL_ENV "
    deactivate
    name=$1
    source ~/venvs/$name/bin/activate
    echo "Activated virtual environment $VIRTUAL_ENV "
  else
    echo "Virtual environment $VIRTUAL_ENV already active"
  fi

  # check if default is not defined, if so, define it as $VIRTUAL_ENV
  if [ ! -f ~/.machineconfig/default_ve ]; then
    mkdir ~/.machineconfig || true
    echo $VIRTUAL_ENV > ~/.machineconfig/default_ve
  fi
fi

