#!/bin/sh

NAME=direct-binlog-logbrokerwriter
SHORT_NAME=$(echo $NAME | sed 's/direct-//')
VERSION=`cat /var/www/$NAME/version`
GC_LOG="/var/log/yandex/$SERVICE_NAME_FOR_LOG_FILES.gc.log"

# MEM_FOR_HEAP передаётся из run-скрипта
MEM_OPTS="-Xmx${MEM_FOR_HEAP:-16}G"

ulimit -v unlimited

JAVA_OPTS="$MEM_OPTS \
    -Dfile.encoding=UTF-8 \
    -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Addresses=true \
    -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=0 \
    -XX:-UsePerfData \
    -XX:+UseG1GC \
    -XX:MaxGCPauseMillis=100 \
    -Xlog:gc*=info,safepoint=info,age*=trace:file=$GC_LOG:time,uptime,level,tags:filecount=5,filesize=100M \
    -XX:+CrashOnOutOfMemoryError \
    -XX:+HeapDumpOnOutOfMemoryError \
    -XX:-OmitStackTraceInFastThrow \
    -XX:HeapDumpPath=/var/log/yandex/$SERVICE_NAME_FOR_LOG_FILES.hprof"

# для запускаемых приложением процессов mysql, чтобы их можно было отследить по содержимому /proc/.../environ
export DIRECT_BINLOGBROKER_PID="$$"

PROG_OPTS=(
    --log-configs-directory "/etc/direct/$SHORT_NAME/logging-config"
)

JAVA_ARGS=(
    -cp "/var/www/$NAME/hotfix/$VERSION/classes/:/var/www/$NAME/$NAME/*:"
    -Djava.library.path="/var/www/$NAME/$NAME"
     ru.yandex.direct.binlogbroker.logbrokerwriter.BinlogbrokerTool
)
exec /usr/local/yandex-direct-jdk11/bin/java ${JAVA_OPTS} "${JAVA_ARGS[@]}" "${PROG_OPTS[@]}" "$@"
