IceWalkers.com - Linux Software downloads and news
Name : Password :
Linux SoftwareLinux RPMLinux HowtosLink UsAboutAdvertise

HOWTOs

Search Howtos :Match :

D.3. The ruby_init service /etc/init.d/ruby_init

The /etc/init.d/ruby_init service configures/ activates most of the settings specific to a Backstreet Ruby system.

#!/bin/sh
#
# ruby_init  This scripts configures cold-pluging for bruby, \
#            loads additional input modules, manages the XFree \ 
#	     and display manager configuration files
#
# chkconfig: 2345 02 98
# description:	Configures the Bruby input subsystem and manages \
#		XFree and display manager configuration files.
# config: /etc/sysconfig/ruby.conf
#
# TODO 
#	* handle commented out "PciOsConfig"
# 	*? status/ ext-status
#	- show config
# 	- check wether curr. configuration matches setup ? 
#	- make it work when hotplug files not installed ?
#	  ( currently it will just just inform that they are not installed
#	  and exit )
#
# $Id: XFree-Local-multi-user-HOWTO.xml,v 1.12 2003/11/11 14:52:42 gferg Exp $
# - don't exit silently if hackvideo or modules loading is deactivated,
#   run the script to the end
# $Id: XFree-Local-multi-user-HOWTO.xml,v 1.12 2003/11/11 14:52:42 gferg Exp $
# - show keyboard status per VT ,use sed instead of head(head is in /usr)
# - *? status/ ext-status
# - (mice & evdev links)?
# $Id: XFree-Local-multi-user-HOWTO.xml,v 1.12 2003/11/11 14:52:42 gferg Exp $
# - include hackvideo handling (long time wondering what was missing)
# $Id: XFree-Local-multi-user-HOWTO.xml,v 1.12 2003/11/11 14:52:42 gferg Exp $
# - got it actually running
# - use >& /dev/null to load variables from the config file 
#   (what a mess)
# $Id: XFree-Local-multi-user-HOWTO.xml,v 1.12 2003/11/11 14:52:42 gferg Exp $
# - initial release

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# source function library
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
	. /etc/rc.d/init.d/functions
fi

# source defaults
if [ -f /etc/sysconfig/ruby.conf ]; then
	#WTF, how to get rid of the ".... >& /dev/null"
	. /etc/sysconfig/ruby.conf >& /dev/null 
	RUBY_CONF="/etc/sysconfig/ruby.conf"
else
	action "ruby_init: Configuration file missing" /bin/false
	exit 1 
fi

function get_status() {
		run_hackvideo status
#		prefbus_used ?
#		print dumb_con=? 
		get_kbds	#and curr. active VTs
}


function get_ext_status() {
		run_input_rc status
		run_hackvideo status
#		prefbus_used ?
#		print dumb_con=?
		get_kbds	#and curr. active VTs
		get_links mouse
		get_links event
}

function run_start_restart() {
     	   	load_modules
		run_hackvideo start
     	   	run_input_rc start
     	   	run_auto_dm
     	   	run_auto_xfree
}

function run_input_rc () {
    for RC in /etc/hotplug/input.rc
    do
	eval "doit=\"\$HOTPLUG_RC_input\"" 
	if [ "$doit" != yes -a "$1" != status ]; then
	    continue
	fi
	$RC $1
	if [ "$1" != status ]; then
     	   action "bruby: configuring cold-pluged devices." $RC $1
	fi
    done
}


function run_hackvideo () {
	eval "doit=\"\$HACK_VIDEO_ENABLE\""
	if [ "$doit" != yes ]; then
	    if [ "$1" = status ]; then
		echo "XFree hackvideo not configured."
	    fi
	    return ;
	fi
	if [ -f /proc/bus/pci/hackvideo ]; then
	   if [ -f /etc/X11/XF86Config-4 ]; then
		   xf_file="/etc/X11/XF86Config-4"
	   elif [ -f /etc/X11/XF86Config ]; then
		   xf_file="/etc/X11/XF86Config"
	   else
		   action "bruby: XFree configuration file not found" /bin/false
		   exit 1
	   fi
	   #fi
	   eval "xf_hackvideo=`sed -n '/^#/d;s/^.*"PciOsConfig"[ 	]//p' $xf_file | sed -e 's/[ 	]//g'`"
	   if [ "$xf_hackvideo" = "1" ]; then
		case "$1" in 
			start)
				action "bruby: Enabling XFree hackvideo workaound." /bin/true
				/bin/echo "1" > /proc/bus/pci/hackvideo
				;;
			stop)	
				action "bruby: Disabling XFree hackvideo workaound."
				/bin/echo "0" > /proc/bus/pci/hackvideo
				;;
			status)
				eval "hack_enabled=`cat /proc/bus/pci/hackvideo`"
				if [ $hack_enabled = 1 ]; then
				    echo "XFree hackvideo activated"
				else
				    echo "XFree hackvideo not activated,"
				    echo "but enabled in configuration. "
				fi
				;;
			*)
				;;
		esac
	   else
			   action "bruby: Hackvideo not configured in XFree," /bin/false
			   action "bruby: but enabled in $RUBY_CONF." /bin/false

	   fi
	else 
				action "bruby: XFree hackvideo configured," /bin/false
				action "bruby: but kernel hackvideo support missing." /bin/false
	fi
		
}

function load_modules () {
	eval "doit=\"\$LOAD_MODULES\""
	if [ "$doit" != yes -a "$1" != status ]; then
	    return ;
	fi
     	action "bruby: loading additional modules." /bin/true
	cat $RUBY_CONF | sed -n "/input modules /,/config/p" | while read module args
	do
	  case "$module" in
	      \#*|"") continue ;;
	  esac
	  initlog -s "Loading module: $module"
	  modprobe $module $args >/dev/null 2>&1
	done
}

function run_auto_xfree () {
	eval "doit=\"\$AUTO_XFree\""
	if [ "$doit" != yes -a "$1" != status ]; then
	    return ;
	fi
	# (pixel) a kind of profile for XF86Config
	# if no XFree=XXX given on kernel command-line, restore XF86Config.standard
	for i in XF86Config XF86Config-4; do
    	   if [ -L "/etc/X11/$i" ]; then
              XFree=`sed -n 's/.*XFree=\(\w*\).*/\1/p' /proc/cmdline`
              [ -n "$XFree" ] || XFree=standard
              [ -r "/etc/X11/$i.$XFree" ] && ln -sf "$i.$XFree" "/etc/X11/$i"
    	  fi
	done
     	action "bruby: configuring XFree." /bin/true
}

function run_auto_dm () {
	eval "doit=\"\$AUTO_DM\""
	if [ "$doit" != yes -a "$1" != status ]; then
	    return ;
	fi
	#
	#the same like XF86Config but for gdm.conf & Xservers
	#
	for i in xdm/Xservers gdm/gdm.conf; do
    	   if [ -L "/etc/X11/$i" ]; then
        	DumbCon=`sed -n 's/.*dumbcon=\([0-9]*\).*/\1/p' /proc/cmdline`
        	[ -n "$DumbCon" ] || DumbCon=0
        	[ -r "/etc/X11/$i.$DumbCon" ] && ln -sf "/etc/X11/$i.$DumbCon" "/etc/X11/$i"
    	   fi
	done
     	action "bruby: configuring display manager." /bin/true
	echo "Setting up display managers for `expr $DumbCon + 1` Xservers"
}


function get_kbds() {
	j=0
	for i in /proc/bus/console/* 
	   do 
		echo
		j=`expr $j + 1`
		phys=`cat $i/keyboard`
		if [ "$phys" = "" ];then
		   echo " VT-`basename $i` : keyboard not attached"
		else
		   echo " VT-`basename $i` using :"
#		   grep -n2 "$phys" /proc/bus/input/devices | sed -e '{/^B: /s;^B:.*;;};{s;^.*: ;;};' -e "/EV=/d" 
 		   grep -B2 -A1 "$phys" /proc/bus/input/devices | sed 's;^.*: ;;'  
		fi
	   done
	echo
	echo "Total of $j VT's avialable."
}

function get_links() {
		echo
 		for i in  /dev/input/$1*br
		    do 
			real=`ls -l $i 2>/dev/null | sed "{s;^.*/dev/input/;;};{s; ->;;}" | cut -d " " -f 2`
			if [ "$real" != "" ]; then
			   echo "$i" 
			   sed -e '/Name/,/Handl/s/.*: //;{/^B: /s;^B:.*;;};'  /proc/bus/input/devices | grep -B2 -A1 "$real"
			else
			    exit 0
			fi     
		    done
}

if [ -f /proc/bus/console  -o  -n tmp=`uname -r | sed -n 's:ruby::p'` ]; then
   if [ -x /etc/hotplug/input.rc  -a  -f /etc/hotplug/input.agent ]; then	

	case "$1" in
    		start|restart)
			run_start_restart
			;;
    		status)
			get_status
			touch /var/lock/subsys/ruby
			;;
    		ext-status)
			get_ext_status
			touch /var/lock/subsys/ruby
			;;
    		stop)
			#run_hackvideo stop
			run_input_rc stop
        		rm -f /var/lock/subsys/ruby
        		;;
    		force-reload)
			run_input_rc stop
			run_input_rc start
			touch /var/lock/subsys/ruby
        		;;

    		*)
			gprintf "Usage: %s {start|stop|restart|status|ext-status|force_reload}\n" "$0"
			exit 3
			;;
	esac

   else if [ -f /etc/hotplug/input.rc -a -f /etc/hotplug/input.agent ]; then
     	   action "Input: input.rc and input.agent installed, but not executable." /bin/false
     	   action "Input: Please check the file permissions." /bin/false
	else 
	   action "Input: Failed to configure cold plugged devices."  /bin/false
	   action "Input: input.rc or input.agent missing."  /bin/false
        fi
   fi
fi
Search Howtos :Match :
DbVisualizer 6.5.2
The Universal Database Tool
PhpMyAdmin 3.1.2 rc1
Php front-end to MySQL administration
Xine 1.1.6
Free video player
Glade 3.5.5
User interface builder for GTK+ and Gnome
Evolution 2.25.4
GNOME mailer, calendar, contact manager and communications tool
GEdit 2.25.4
Small but powerful text editor
LimeWire 5.0.4
Gnutella Client
WebGUI 7.6.8
A fully featured content management system.
GTK2 2.14.7
GUI Toolkit
Brasero 0.9.0
Application to burn CD/DVD
Free IT Magazines, White Papers, eBooks, and more !
Dr. Dobb's Journal

Dr. Dobb's Journal enables programmers to write the most efficient and sophisticated programs and help in daily programming quandaries.

The 7 Things that IT Security Professionals MUST KNOW!

Gain key insight into security problem and find the safest means to protect your technological assets.

Database Trends and Applications

Provides timely coverage of the technology, intelligence and insight needed to plan, implement and manage information-rich projects.

Linux Software Map
Find Linux RPM
Best Rated Linux Software
Most Rated Linux Software
Linux Distributions
Linux Howtos
Quick Survey

Please take our survey and help us improve our website to serve you better.

Thank you.
Linux Software
Linux / IT Resources
Site Resources
Google
Privacy Policy
Contact Us
Submit Software
Advertising info