#!/bin/sh

#
# This file simply redirects all passed arguments
# to org.checkerframework.framework.util.CheckerMain
#

mydir="$(dirname "$0")"
case $(uname -s) in
    CYGWIN*)
      mydir=$(cygpath -m "$mydir")
      ;;
esac

## Preserve quoting and spaces in arguments, which would otherwise be lost
## due to being passed through the shell twice.
# Unset IFS and use newline as arg separator to preserve spaces in args.
# shellcheck disable=SC2034
DUALCASE=1  # for MKS: make case statement case-sensitive (6709498)
saveIFS="$IFS"
nl='
'
for i in "$@" ; do
   IFS=
   # shellcheck disable=SC2027
   case $i in
     "-Xmn"*) jvmargs=$jvmargs$nl"'"$i"'" ;;
     "-Xms"*) jvmargs=$jvmargs$nl"'"$i"'" ;;
     "-Xmx"*) jvmargs=$jvmargs$nl"'"$i"'" ;;
     *)       args=$args$nl"'"$i"'" ;;
   esac
   IFS="$saveIFS"
done

# shellcheck disable=SC2086
eval "java" \
     ${jvmargs} \
     "-jar" "${mydir}"/../dist/checker.jar \
     ${args}
