#!/bin/sh

prg=`basename "$0"`
dir=`dirname "$0"`/..

usage() {
  polyglot -h
  cat <<EOF
  -j <jvm-options>         pass options to the Java VM
  -J <jvm>                 use a different Java VM (default java in path)
  -V                       echo the java command
EOF
}

fixclasspath() {
  windows=0

  if [ `uname | grep -c CYGWIN` -ne 0 ]; then
    windows=1
  fi

  cp="$1"
  if [ "$windows" = 1 ]; then 
    cygpath -pw "$cp"
  else
    echo "$cp"
  fi
}

unixfilename() {
  if [ `uname | grep -c CYGWIN` -ne 0 ]; then
    windows=1
  fi

  cp="$1"
  if [ "$windows" = 1 ]; then 
    cygpath -u "$cp"
  else
    echo "$cp"
  fi
}

unixpath() {
  if [ `uname | grep -c CYGWIN` -ne 0 ]; then
    windows=1
  fi

  cp="$1"
  if [ "$windows" = 1 ]; then 
    cygpath -pu "$cp"
  else
    echo "$cp"
  fi
  cp="$1"
}

extra_cp=
args=
vmargs=-ea
classpath=
java=java

polyglot() {
  eval "$java" "$vmargs" -classpath "'$classpath'" polyglot.pth.Main "$@"
}

dir=`unixfilename "$dir"`

while true; do
    case "$1" in
        "")
            break
            ;;
        -V)
            verbose=1
            shift
            ;;
        -classpath)
            shift
            extra_cp_arg=`unixpath "$1"`
            extra_cp="$extra_cp:$extra_cp_arg"
            
            shift
            ;;
        -cp)
            shift
            extra_cp_arg=`unixpath "$1"`
            extra_cp="$extra_cp:$extra_cp_arg"
            
            shift
            ;;            
        -j)
            shift
            vmargs="$vmargs '$1'"
            shift
            ;;
        -J)
            shift
            java="'$1'"
            shift
            ;;
        -h)
            usage=1
            break
            ;;
        *)
            args="$args '$1'"
            shift
            ;;
    esac
done

classpath="$dir/classes:$dir/lib/polyglot.jar:$dir/lib/java_cup.jar"
classpath="$classpath:$dir/tools/pth/classes:$dir/tools/lib/pth.jar"
classpath="$classpath:$extra_cp"
classpath=`fixclasspath "$classpath"`

if [ "$usage" = 1 ]; then
  usage
  exit 0
fi

if [ "$verbose" = 1 ]; then
  echo "$java" "$vmargs" -classpath "'$classpath'" polyglot.main.Main "$args"
fi

polyglot "$args"
