#!/bin/sh

# ulimit -s 32000
# ulimit -a

rn=$(readlink -f "${0}")
standardDir=$(dirname "${rn}")
useDir=$(readlink -f .)

exeBase="blackbox"

os=$(uname -s)
case "${os%%-*}" in
	"Linux")
		exe="${exeBase}Linux"

		# fix Ubuntu-specific problems:
		unset UBUNTU_MENUPROXY
		unset GTK_MODULES
		export LIBOVERLAY_SCROLLBAR=0
		;;
	"OpenBSD")
		exe="${exeBase}OpenBSD"
		;;
	"FreeBSD")
		exe="${exeBase}FreeBSD"
		;;
	"NetBSD")
		exe="${exeBase}NetBSD"
		export LD_LIBRARY_PATH=/usr/pkg/lib:${LD_LIBRARY_PATH}
		;;
	"MSYS_NT" | "MINGW64_NT" | "MINGW32_NT")
		exe="${exeBase}"
		;;
	*)
		echo "unsupported OS"
		exit 1
esac

if [ -n "${LD_32_LIBRARY_PATH}" ]; then
	# GIO modules
	if [ -e "${LD_32_LIBRARY_PATH}"/gio/modules ]; then
		export GIO_MODULE_DIR="${LD_32_LIBRARY_PATH}"/gio/modules
	fi

	# gdk-pixbuf loaders
	if [ -e "${LD_32_LIBRARY_PATH}"/gdk-pixbuf-2.0 -a -e "${LD_32_LIBRARY_PATH%/lib}"/bin/gdk-pixbuf-query-loaders ]; then
		ver=$(ls "${LD_32_LIBRARY_PATH}"/gdk-pixbuf-2.0)
		if [ -n "${ver}" ]; then
			export GDK_PIXBUF_MODULEDIR="${LD_32_LIBRARY_PATH}"/gdk-pixbuf-2.0/"${ver}"/loaders
			export GDK_PIXBUF_MODULE_FILE=$(mktemp -t loaders.cache)
			trap "rm -f ${GDK_PIXBUF_MODULE_FILE}" EXIT
			"${LD_32_LIBRARY_PATH%/lib}"/bin/gdk-pixbuf-query-loaders > "${GDK_PIXBUF_MODULE_FILE}"
		fi
	fi
fi

# export LD_DEBUG=all
env \
	BB_STANDARD_DIR="${standardDir}" BB_USE_DIR="${useDir}" \
	"${standardDir}"/${exe} "${@}"
