#!/bin/sh
#
# nvidia-glx:	Enable/Disable nvidia driver in XF86Config
#
# chkconfig:    2345 8 92
# description:  This script will check if the nvidia kernel module is present \
#	for the running kernel modify the xorg.conf to the 'best' config
# processname: 	nvidia-glx

# Source function library.
. /etc/rc.d/init.d/functions

exec="/usr/sbin/nvidia-config-display"
prog=`basename $exec`
servicename=nvidia-glx
lockfile="/var/lock/subsys/${servicename}"

test -e /etc/sysconfig/$prog && . /etc/sysconfig/$prog

kernel="`uname -r`" ; kernel="${kernel#2.}" ; kernel="${kernel%%.*}"

case $kernel in
    4) module=/lib/modules/"`uname -r`"/kernel/drivers/video/nvidia/nvidia.o ;;
    6) module=/lib/modules/"`uname -r`"/kernel/drivers/video/nvidia/nvidia.ko ;;
    *) exit 1
esac

start() {
    if action "Checking for nvidia kernel module" test -f $module
	then
	action "Enabling nvidia-glx driver" $exec enable
    else
	echo "`basename $module` module for `uname -r` kernel not found"
	action "Disabling nvidia-glx driver" $exec disable
    sleep 3
    fi
    retval=$?
    [ "$retval" -eq "0" ] && touch $lockfile
    return $retval
}

stop() {
    action "Disabling nvidia-glx driver" $exec disable
    retval=$?
    [ "$retval" -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}	

reload() {
    restart
}

fdrstatus() {
    status $prog
}

case "$1" in
    start|stop|restart|reload)
        $1
        ;;
    status)
        fdrstatus
        ;;
    force-reload)
	forceload
	;;
    condrestart)
	restart
	;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}"
        exit 1
esac
