#!/bin/sh

# nvidia-glx-96xx:   Enable/Disable nvidia driver in /etc/X11/xorg.conf
#
# chkconfig:    2345 8 92
# description:  This script will check if the nvidia kernel module is present \
#               for the running kernel and modify /etc/X11/xorg.conf to the \
#               'best' configuration.
# processname:  nvidia-glx-96xx

# 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%%.*}"
module=/lib/modules/"`uname -r`"/kernel/drivers/video/nvidia/nvidia.ko

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

stop() {
    action "Disabling nvidia-glx-96xx 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
