#!/usr/bin/env bash
set -euo pipefail

. "${0%/*}/internal/set-context.sh"
declare java classpathString
declare -a standardJavaOptions

data="$HOME/data"
javaOptions=()
args=()

for arg in "$@"; do :
  case "$arg" in
    --data-directory=*)
      data="${arg#*=}"
      ;;
    --java-option=*)
      a="${arg#*=}"
      javaOptions+=("$a")
      ;;
    -J*)
      a="${arg#-J}"
      javaOptions+=("$a")
      ;;
    *)
      args+=("$arg")
  esac
done

if [[ "$JAVA_VERSION_MAJOR" -ge 25 ]]; then
  standardJavaOptions+=(
  -XX:SharedArchiveFile="$data/cache/SubagentClient.jsa"
  -XX:+AutoCreateSharedArchive
  -Xlog:cds=error)
fi

execute=("$java" -Xmx50m "${javaOptions[@]}" "${standardJavaOptions[@]}")
execute+=(-classpath "$classpathString")
execute+=(-Dlog4j2.configurationFile="classpath:js7/log4j2.xml,classpath:js7/log4j2-stderr.xml")
execute+=(js7.agent.client.main.SubagentClientMain --data-directory="$data" "${args[@]}")
#echo 1>&2 "${execute[@]}"
exec "${execute[@]}"
