File switch-libGL.sh of Package dkms-nvidia

#!/bin/bash
#
#

#
#	Check rights
#
if (( EUID != 0 )); then
    echo "You do not have sufficient privileges to switch the libGL and libGLESv2 library"
    echo
    if which sudo &>/dev/null; then
        echo "Please run: sudo $0 [ mesa | nvidia ] [ 32 | 64 ]"
    else
        echo "Please run $0 [ mesa | nvidia ] [ 32 | 64 ] as root"
    fi
    echo
    exit 1
fi

#
# Library names
#
MESA_LIBGL=libGL.so.1.2.0
MESA_LIBGLESV2=libGLESv2.so.2.0.0
NVIDIA_LIBGL=libGL.so.nvidia_version
NVIDIA_LIBGLESV2=libGLESv2.so.nvidia_version

#
# 32bit switch libGL.so
#
if [ -f /usr/lib/$MESA_LIBGL ] && ( [ "x$2" == "x" ] || [ "x$2" == "x32" ] ) ; then

    if ( [ "x$1" == "x" ] || [ "x$1" == "xmesa" ] ) && [ -L /usr/lib/$MESA_LIBGL ] ; then

	#
	# Switch to Mesa
	#
	rm -f /usr/lib/$MESA_LIBGL
	mv -f /usr/lib/nvidia/$MESA_LIBGL.backup /usr/lib/$MESA_LIBGL

    elif ( [ "x$1" == "x" ] || [ "x$1" == "xnvidia" ] ) && [ ! -L /usr/lib/$MESA_LIBGL ] ; then

	#
	# Switch to nVidia
	#
	mv -f /usr/lib/$MESA_LIBGL /usr/lib/nvidia/$MESA_LIBGL.backup
	ln -sf /usr/lib/nvidia/$NVIDIA_LIBGL /usr/lib/$MESA_LIBGL

    fi
fi

#
# 32bit switch libGLESv2.so
#
if [ -f /usr/lib/$MESA_LIBGLESV2 ] && ( [ "x$2" == "x" ] || [ "x$2" == "x32" ] ) ; then

    if ( [ "x$1" == "x" ] || [ "x$1" == "xmesa" ] ) && [ -L /usr/lib/$MESA_LIBGLESV2 ] ; then

	#
	# Switch to Mesa
	#
	rm -f /usr/lib/$MESA_LIBGLESV2
	mv -f /usr/lib/nvidia/$MESA_LIBGLESV2.backup /usr/lib/$MESA_LIBGLESV2

    elif ( [ "x$1" == "x" ] || [ "x$1" == "xnvidia" ] ) && [ ! -L /usr/lib/$MESA_LIBGLESV2 ] ; then

	#
	# Switch to nVidia
	#
	mv -f /usr/lib/$MESA_LIBGLESV2 /usr/lib/nvidia/$MESA_LIBGLESV2.backup
	ln -sf /usr/lib/nvidia/$NVIDIA_LIBGLESV2 /usr/lib/$MESA_LIBGLESV2

    fi
fi

if [ "`uname -m`" != "x86_64" ] ; then
    exit 0
fi

#
# 64bit switch libGL.so
#
if [ -f /usr/lib64/$MESA_LIBGL ] && ( [ "x$2" == "x" ] || [ "x$2" == "x64" ] ) ; then

    if ( [ "x$1" == "x" ] || [ "x$1" == "xmesa" ] ) && [ -L /usr/lib64/$MESA_LIBGL ] ; then

	#
	# Switch to Mesa
	#
	rm -f /usr/lib64/$MESA_LIBGL
	mv -f /usr/lib64/nvidia/$MESA_LIBGL.backup /usr/lib64/$MESA_LIBGL

    elif ( [ "x$1" == "x" ] || [ "x$1" == "xnvidia" ] ) && [ ! -L /usr/lib64/$MESA_LIBGL ] ; then

	#
	# Switch to nVidia
	#
	mv -f /usr/lib64/$MESA_LIBGL /usr/lib64/nvidia/$MESA_LIBGL.backup
	ln -sf /usr/lib64/nvidia/$NVIDIA_LIBGL /usr/lib64/$MESA_LIBGL

    fi
fi

#
# 64bit switch libGLESv2.so
#
if [ -f /usr/lib64/$MESA_LIBGLESV2 ] && ( [ "x$2" == "x" ] || [ "x$2" == "x64" ] ) ; then

    if ( [ "x$1" == "x" ] || [ "x$1" == "xmesa" ] ) && [ -L /usr/lib64/$MESA_LIBGLESV2 ] ; then

	#
	# Switch to Mesa
	#
	rm -f /usr/lib64/$MESA_LIBGLESV2
	mv -f /usr/lib64/nvidia/$MESA_LIBGLESV2.backup /usr/lib64/$MESA_LIBGLESV2

    elif ( [ "x$1" == "x" ] || [ "x$1" == "xnvidia" ] ) && [ ! -L /usr/lib64/$MESA_LIBGLESV2 ] ; then

	#
	# Switch to nVidia
	#
	mv -f /usr/lib64/$MESA_LIBGLESV2 /usr/lib64/nvidia/$MESA_LIBGLESV2.backup
	ln -sf /usr/lib64/nvidia/$NVIDIA_LIBGLESV2 /usr/lib64/$MESA_LIBGLESV2

    fi
fi

exit 0
openSUSE Build Service is sponsored by