#!/bin/bash

# 1. 获取当前脚本所在的绝对目录
# ${BASH_SOURCE[0]} 获取脚本文件名，dirname 获取目录部分，cd 并 pwd 确保是绝对路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# 2. 获取当前被调用的命令名 (例如: latx-i386)
CALLED_AS=$(basename "$0")

# 3. 定义同级目录下的真实二进制文件名
# 假设真实的二进制文件被重命名为 latx-i386.real
REAL_BIN="${SCRIPT_DIR}/${CALLED_AS}.real"

# 根据调用名称设置对应的库路径
# export LAT_LD_PREFIX="/run/wine"
export LATX_LIB_PATH=/run/wine/usr/lib/x86_64-linux-gnu:/run/wine/lib/x86_64-linux-gnu
export LATX_LIB32_PATH=/run/wine/usr/lib/i386-linux-gnu:/run/wine/lib/i386-linux-gnu/
export LD_LIBRARY_PATH="$LATX_LIB_PATH:$LATX_LIB32_PATH:$LD_LIBRARY_PATH"

# 如果真实的二进制文件不在 .real 位置，你需要修改上面的 REAL_BIN 路径
# 或者，如果你是用来替换 binfmt_misc 的调用，直接调用原始路径即可
# 这里演示调用重命名后的真实文件，避免死循环
if [ -f "$REAL_BIN" ]; then
    exec "$REAL_BIN" "$@"
else
    # 如果找不到 .real 文件，尝试直接调用（注意：如果 PATH 指向脚本本身，这会死循环，所以通常配合重命名使用）
    # 这里为了安全，建议将真实二进制重命名为 latx-i386.bin 或类似名字
    echo "Error: Real binary not found at $REAL_BIN" >&2
    exit 1
fi
