#! /bin/sh

# provided as an aid to understanding only
# there is no warranty
# run as root

R=http://druseikis.com/OpenBSD/ports

case "$1" in

# does not remove symlinks to eclipse
  --remove )
    pkg_delete exodus-0.1 jamvm-1.4.2 classpath-0.20 jikes-1.22p0
    cd /usr/ports
    rm -rf devel/exodus lang/jamvm lang/classpath 
    rm -rf /tmp/exodus
    ;;

# grab ports, install them

  --setup )
    mkdir -p /tmp/exodus
    cd /tmp/exodus
    ftp ${R}/jikes.tar.gz
    ftp ${R}/jamvm.tar.gz
    ftp ${R}/classpath.tar.gz
    ftp ${R}/exodus.tar.gz

    if pkg_info -q -e 'jikes-<=1.22'; then
      echo "$0: sorry, you'll have to remove the existing jikes first"
      exit 0
    fi

    rm -rf /usr/ports/lang/jikes
     
    for f in *.gz; do tar -zxf $f -C /usr/ports; done
    cd /usr/ports/lang/jikes
    make install
    cd /usr/ports/lang/jamvm
    make install
    cd /usr/ports/devel/exodus
    make install
    ;;

  --real-eclipse )
      if pkg_info -q -e 'eclipse-sdk->=3.1'; then
        LIBS=/usr/local/lib
      else
        echo "$0: eclipse-sdk-3.1 is not installed"
        exit 1
      fi

      cd $LIBS

      ln -s ${LIBS}/libcore_3_1_0.so.2.0 ${LIBS}/libcore_3_1_0.so
      ln -s ${LIBS}/libswt-atk-gtk-3138.so.2.0 ${LIBS}/libswt-atk-gtk-3138.so
      ln -s ${LIBS}/libswt-awt-gtk-3138.so.2.0 ${LIBS}/libswt-awt-gtk-3138.so
      ln -s ${LIBS}/libswt-gtk-3138.so.2.0 ${LIBS}/libswt-gtk-3138.so
      ln -s ${LIBS}/libswt-pi-gtk-3138.so.2.0 ${LIBS}/libswt-pi-gtk-3138.so

      cat <<EOT >/tmp/exodus-env.sh
export JAVA_HOME=/usr/local/exodus
export ECLIPSE_HOME=/usr/local/eclipse
export PATH="$JAVA_HOME/bin:$PATH"
EOT
      echo "$0: wrote /tmp/exodus-env.sh"
    ;;

  --faux-eclipse )

    if [ "$2" != "" -a "$3" != "" ]; then
      test ! -d "$3" && mkdir -p "$3"
      tar -zxf $2 -C $3
      rm -f /usr/local/eclipse
      rm -f /usr/local/bin/eclipse
      ln -s $3/eclipse /usr/local/eclipse
      ln -s $3/bin/eclipse /usr/local/bin

      if pkg_info -q -e 'eclipse-sdk->=3.1'; then
        echo "$0: eclipse-sdk-3.1 is installed"
        exit 0
      else
        LIBS=$HOME/e/lib
      fi

      cd $LIBS

      ln -s ${LIBS}/libcore_3_1_0.so.2.0 ${LIBS}/libcore_3_1_0.so
      ln -s ${LIBS}/libswt-atk-gtk-3138.so.2.0 ${LIBS}/libswt-atk-gtk-3138.so
      ln -s ${LIBS}/libswt-awt-gtk-3138.so.2.0 ${LIBS}/libswt-awt-gtk-3138.so
      ln -s ${LIBS}/libswt-gtk-3138.so.2.0 ${LIBS}/libswt-gtk-3138.so
      ln -s ${LIBS}/libswt-pi-gtk-3138.so.2.0 ${LIBS}/libswt-pi-gtk-3138.so

      cat <<EOT >/tmp/exodus-env.sh
export JAVA_HOME=/usr/local/exodus
export ECLIPSE_HOME=/usr/local/eclipse
export LD_LIBRARY_PATH="$3/lib:$LD_LIBRARY_PATH"
export PATH="$JAVA_HOME/bin:$PATH"
EOT
      echo "$0: wrote /tmp/exodus-env.sh"

    else
      echo "usage: $0 --eclipse package.tgz /path/to/eclipse-dir"
    fi
    ;;

  * )
    cat <<EOT
usage: $0 [ --remove | --setup| --real-eclipse | --faux-eclipse package.tgz /path/to/eclipse-dir ]
  --setup                 grabs ports and installs them
  --remove                removes ports
  --faux-eclipse          fake install of eclipse-sdk-3.1
  --real-eclipse          creates symlinks to libs from a valid pkg_add

EOT
    ;;

esac
