#!/usr/bin/env bash
# Wrapper для EVI Player.
# Использует exec: shell заменяется процессом evi_player.
# Crash-уведомление реализовано через helper-скрипт, запускаемый перед exec.

INST_LIB="/usr/lib/evi-player"
export LD_LIBRARY_PATH="${INST_LIB}:${INST_LIB}/piper:${LD_LIBRARY_PATH:-}"
# Приватная директория ПЕРВОЙ: там лежит патченный libgstlibav.so
# (gst-libav-avpacket-leak — фикс утечки AVPacket в 1.24.0/1.24.1).
export GST_PLUGIN_PATH="${INST_LIB}/gstreamer-1.0:/usr/lib/x86_64-linux-gnu/gstreamer-1.0:${GST_PLUGIN_PATH:-}"
if [ -f "${INST_LIB}/gstreamer-1.0/libgstlibav.so" ]; then
    echo "[evi-player] ВНИМАНИЕ: активен временный патченный gst-libav (фикс утечки AVPacket в 1.24.1)." >&2
    echo "[evi-player] Удалите его из поставки после перехода на gst-libav >= 1.24.2 (patch/gst-libav-avpacket-leak/README.md)." >&2
fi
# Для self-signed сертификатов сервера раскомментируйте следующую строку:
# export EVI_INSECURE_TLS=1
export DBUS_SESSION_BUS_ADDRESS="${DBUS_SESSION_BUS_ADDRESS:-unix:path=/run/user/$(id -u)/bus}"

CFG_DIR="${HOME}/.config/evi-player"
mkdir -p "$CFG_DIR"
[ ! -f "${CFG_DIR}/config.toml" ] && cp /etc/evi-player/config.toml "${CFG_DIR}/config.toml"
mkdir -p "${HOME}/Pictures"
cd "$CFG_DIR"

# exec заменяет shell на evi_player — один процесс, корректная обработка сигналов.
# Код возврата shell == код возврата evi_player.
exec "${INST_LIB}/evi_player" "$@"
