1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#!/bin/bash
if [ -z "$1" -o "$1" = '--help' ]; then
echo "USAGE: $0 <program> [args...]"
exit 1
fi
if [ -d /usr/lib64 ]; then
libdir_64=/usr/lib64
if [ -d "$libdir_64/mumble" ]; then
libdir_64="$libdir_64/mumble";
fi
fi
if [ -d /usr/lib32 ]; then
libdir_32=/usr/lib32
if [ -d "$libdir_32/mumble" ]; then
libdir_32="$libdir_32/mumble";
fi
fi
if [ -z "$libdir_32" -o -z "$libdir_64" ]; then
tlibdir=/usr/lib
if [ -d "$tlibdir/mumble" ]; then
tlibdir="$tlibdir/mumble"
fi
if [ -f "$tlibdir/libmumble.so.1" ]; then
case $(file -L "$tlibdir/libmumble.so.1") in
*64-bit*) libdir_64=$tlibdir ;;
*32-bit*) libdir_32=$tlibdir ;;
esac
fi
fi
MUMBLE_OVERLAY_PATH_32=$libdir_32
MUMBLE_OVERLAY_PATH_64=$libdir_64
if [ -f /etc/sysconfig/mumble ]; then
. /etc/sysconfig/mumble
fi
binary="$1"
if [ "${binary/\/}" = "$binary" ]; then
binary=$(which "$binary")
fi
if [ ! -x "$binary" ]; then
echo "$1 not found" >&2
exit 1
fi
is64=no
is32=no
case $(file -L "$binary") in
*64-bit*)
if [ ! -f "${MUMBLE_OVERLAY_PATH_64}/libmumble.so.1" ]; then
echo "64-bit libmumble.so.1 not found in ${MUMBLE_OVERLAY_PATH_64}" >&2
exit 1
fi
MUMBLE_PRELOAD="${MUMBLE_OVERLAY_PATH_64}/libmumble.so.1"
;;
*32-bit*)
if [ ! -f "${MUMBLE_OVERLAY_PATH_32}/libmumble.so.1" ]; then
echo "32-bit libmumble.so.1 not found in ${MUMBLE_OVERLAY_PATH_32}" >&2
exit 1
fi
MUMBLE_PRELOAD="${MUMBLE_OVERLAY_PATH_32}/libmumble.so.1"
;;
*)
if [ -f "${MUMBLE_OVERLAY_PATH_64}/libmumble.so.1" ]; then
MUMBLE_PRELOAD="${MUMBLE_OVERLAY_PATH_64}/libmumble.so.1"
fi
if [ -f "${MUMBLE_OVERLAY_PATH_32}/libmumble.so.1" ]; then
MUMBLE_PRELOAD="${MUMBLE_PRELOAD} ${MUMBLE_OVERLAY_PATH_32}/libmumble.so.1"
fi
if [ -z "${MUMBLE_PRELOAD}" ]; then
echo "Neither 32-bit or 64-bit libmumble.so.1 found"
exit 1
fi
esac
LD_PRELOAD="${MUMBLE_PRELOAD} ${LD_PRELOAD}" "${@}"
|