#!/bin/bash

##  Set up environment for Nextgen
##

# Load this file directly or indirectly only once
if [ -n "$NGC_LOADED_CONFIG" ] ; then
   return
fi
export NGC_LOADED_CONFIG=true
export NGC_ORIG_CLASSPATH=$CLASSPATH


show_usage() {
    echo "NextGen Environment Setup Script"
    echo "Usage: . bashrc"
    echo "      ^^^ Make sure you have the '.' "
    echo ""
    return 0
}

# Determine client OS
cygwin=false;
darwin=false;
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  Darwin*) darwin=true ;;
esac

if [ -f "${HOME}/.ngcrc" ] ; then
  . ${HOME}/.ngcrc
fi

# Make sure we load this in the current environment
# basename "-bash" doesnt work in darwin: "-" is parsed for a flag
if ! $darwin && [ $(basename ${0}) == 'bashrc' ]; then show_usage; exit 0; fi

## Set NextGen Home

## the conditional stuff below resembles the ones in bin/
## b/c we dont need to load bashrc, but simply need to make sure 
## NGC_HOME is correctly defined
if [ -n "$NGC_HOME" ] && [ -f "${NGC_HOME}/etc/bashrc" ] ; then
  NGC=$NGC_HOME
elif [ -f "${HOME}/nextgen2/etc/bashrc" ] ; then
  NGC=${HOME}/nextgen2
else 
  # no easy way to determine path manually.
  echo "Set NGC_HOME to the root directory of your nextgen installation"
  echo "or define NGC_HOME in ${HOME}/.ngcrc"
  return
fi

if $cygwin ; then
   NGC=`cygpath --unix "$NGC"`
fi


if [ ! -f "${NGC}/build.xml" ] ; then
   echo "Could not find build.xml in directory ${NGC}/"
   return
fi

NGC_CLASSPATH_PREFIX=${NGC}/built/:${NGC}/lib/junit.jar:${NGC}/lib/bcel.jar:${NGC}/lib/asm-2.1.jar:${NGC}/lib/asm-tree-2.1.jar

# Add javaplt path and classpath if they exist
# do this before NGC stuff. ngc has precedence
if [ -d "${HOME}/javaplt/" ] ; then
   PATH=${HOME}/javaplt/bin/:$PATH
   # CLASSPATH=${HOME}/javaplt/packages:$CLASSPATH
   $NGC_CLASSPATH_PREFIX=$NGC_CLASSPATH_PREFIX:${HOME}/javaplt/packages
fi

PATH=${NGC}/bin/:${HOME}/bin:$PATH


# Each person gets his built directory on the classpath
# CLASSPATH=${NGC}/built/:${NGC}/lib/junit.jar:${NGC}/lib/bcel.jar:${NGC}/lib/asm-2.1.jar:${NGC}/lib/asm-tree-2.1.jar:$CLASSPATH
CLASSPATH=$NGC_CLASSPATH_PREFIX:$CLASSPATH

if $cygwin ; then
   CLASSPATH=`cygpath -p -w "${CLASSPATH}"`
fi 



# default jdk.
#for i in `find ~/javaplt/packages/ -maxdepth 1 |grep .jar$`
#do
##  echo ${i}
#  CLASSPATH=${CLASSPATH}:${i}
#done

export CLASSPATH
export NGC_CLASSPATH_PREFIX

#necessary to compile nextgen correctly (w/generics)
#export ANT_OPTS="-Xbootclasspath/p:${HOME}/javaplt/packages/jsr14_adding_generics-2_2-ea/gjc-rt.jar  -Xmx256M"

if $darwin ; then 
  # make sure java1.5 is on the front of the path
  export PATH=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/bin/:$PATH
  export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/
elif [ -x /usr/local/jdk1.5/bin/ ] ; then
  # added this for self-installed jdk1.5 on linux
  echo "Using jdk found in /usr/local/jdk1.5"
  export PATH=/usr/local/jdk1.5/bin/:$PATH
  export JAVA_HOME=/usr/local/jdk1.5/  
fi

#update ignores
alias svn_ignore='svn propset svn:ignore . -F .svn.ignore'
alias cdng0='cd ${NGC_HOME}'
alias cdng_src='cd ${NGC_HOME}/src/java/edu/rice/cs/nextgen2/'
