#!/bin/sh
# SmartReviewer launcher. Needs Java 17+: SMARTREVIEWER_JAVA, then JAVA_HOME, then java on PATH.
# SMARTREVIEWER_OPTS comes after the defaults, so e.g. -Xmx8g there overrides the 1.5 GB default heap.
# The engine runs as its own process; the analysed projects may use any Java version.
app_path=$0
while [ -h "$app_path" ]; do
  link=$(ls -ld "$app_path" | sed 's/.*-> //')
  case $link in
    /*) app_path=$link ;;
    *) app_path=$(dirname "$app_path")/$link ;;
  esac
done
APP_HOME=$(cd "$(dirname "$app_path")/.." && pwd -P)

if [ -n "$SMARTREVIEWER_JAVA" ]; then
  JAVA="$SMARTREVIEWER_JAVA"
elif [ -n "$JAVA_HOME" ]; then
  JAVA="$JAVA_HOME/bin/java"
else
  JAVA=java
fi

major=$("$JAVA" -version 2>&1 | sed -n 's/.*version "\([0-9]*\).*/\1/p' | head -n 1)
if [ -z "$major" ] || [ "$major" -lt 17 ] 2>/dev/null; then
  echo "SmartReviewer needs Java 17 or newer (found: ${major:-unknown} at $JAVA). Set SMARTREVIEWER_JAVA." >&2
  exit 2
fi

exec "$JAVA" -Xmx1536m $SMARTREVIEWER_OPTS -Dfile.encoding=UTF-8 -Dsmartreviewer.home="$APP_HOME" \
  -cp "$APP_HOME/lib/*" io.smartreviewer.cli.Main "$@"
