#!/usr/bin/env bash

set -e -o pipefail

source "`dirname "$0"`"/lucenia-env

IFS=';' read -r -a additional_sources <<< "$LUCENIA_ADDITIONAL_SOURCES"
for additional_source in "${additional_sources[@]}"
do
  source "$LUCENIA_HOME"/bin/$additional_source
done

IFS=';' read -r -a additional_classpath_directories <<< "$LUCENIA_ADDITIONAL_CLASSPATH_DIRECTORIES"
for additional_classpath_directory in "${additional_classpath_directories[@]}"
do
  LUCENIA_CLASSPATH="$LUCENIA_CLASSPATH:$LUCENIA_HOME/$additional_classpath_directory/*"
done

# use a small heap size for the CLI tools, and thus the serial collector to
# avoid stealing many CPU cycles; a user can override by setting LUCENIA_JAVA_OPTS
LUCENIA_JAVA_OPTS="-Xms4m -Xmx64m -XX:+UseSerialGC ${LUCENIA_JAVA_OPTS}"

exec \
  "$JAVA" \
  "$XSHARE" \
  $LUCENIA_JAVA_OPTS \
  -Dlucenia.path.home="$LUCENIA_HOME" \
  -Dlucenia.path.conf="$LUCENIA_PATH_CONF" \
  -Dlucenia.distribution.type="$LUCENIA_DISTRIBUTION_TYPE" \
  -cp "$LUCENIA_CLASSPATH" \
  "$LUCENIA_MAIN_CLASS" \
  "$@"
