#!/bin/bash
display_error() {
	tput sgr0
	tput setaf 1
	echo "ERROR: $1"
	tput sgr0
	exit 1
}

BRANCH=$1
if [ "$(whoami)" != "root" ]; then
	GVM_DEST=~
	GVM_NAME=.gvm
else
	GVM_DEST=/usr/local
	GVM_NAME=gvm
fi

ENV_FILE=~/.bashrc
SRC_REPO=git://github.com/moovweb/gvm.git
#SRC_REPO=~/install.gvm

[ -d $GVM_DEST/$GVM_NAME ] && display_error "Already installed!"

cd $GVM_DEST && git clone $SRC_REPO $GVM_NAME > /dev/null 2>&1 || 
	display_error "Failed to clone from $SRC_REPO into $GVM_DEST/$GVM_NAME"

if [ "$BRANCH" == "stable" ]; then
  cd $GVM_DEST/$GVM_NAME && git checkout $BRANCH > /dev/null 2>&1 ||
    display_error "Failed to checkout $BRANCH branch"
fi

mv $GVM_DEST/$GVM_NAME/.git $GVM_DEST/$GVM_NAME/git.bak

if [ "$(whoami)" != "root" ]; then
  if [ -e ~/.bashrc ]; then
    cat ~/.bashrc | grep "\[\[ -s \"\$HOME/.gvm/scripts/gvm\" ]] && source \"\$HOME/.gvm/scripts/gvm\"" > /dev/null 2>&1
    if [ $? -ne 0 ]; then
      echo '[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"' >> $ENV_FILE
    fi
  elif [ -e ~/.profile ]; then
    cat ~/.bashrc | grep "\[\[ -s \"\$HOME/.gvm/scripts/gvm\" ]] && source \"\$HOME/.gvm/scripts/gvm\"" > /dev/null 2>&1
    if [ $? -ne 0 ]; then
      echo '[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"' >> $ENV_FILE
    fi
	else
    echo 'Unable to location profile settings file'
		echo
    echo " You will have to manually add the following line:"
    echo " [[ -s \"\$HOME/.gvm/scripts/gvm\" ]] && source \"\$HOME/.gvm/scripts/gvm\""
    echo
    echo "To get started right away run \`source ~/.gvm/scripts/gvm\`"
    echo
  fi
fi
echo "export GVM_ROOT=$GVM_DEST/$GVM_NAME" > $GVM_DEST/$GVM_NAME/scripts/gvm
echo ". \$GVM_ROOT/scripts/gvm-default" >> $GVM_DEST/$GVM_NAME/scripts/gvm
[[ -s "$GVM_DEST/$GVM_NAME/scripts/gvm" ]] && source "$GVM_DEST/$GVM_NAME/scripts/gvm"
echo "Installed GVM v$GVM_VERSION"
echo "Please restart your terminal session"

