Home | History | Annotate | Line # | Download | only in rc.d
bootconf.sh revision 1.5.2.1
      1      1.1     lukem #!/bin/sh
      2      1.1     lukem #
      3  1.5.2.1      tron # $NetBSD: bootconf.sh,v 1.5.2.1 2003/06/15 13:07:57 tron Exp $
      4      1.1     lukem #
      5      1.1     lukem 
      6      1.1     lukem # PROVIDE: bootconf
      7      1.1     lukem # REQUIRE: mountcritlocal
      8      1.1     lukem 
      9      1.1     lukem bootconf_start()
     10      1.1     lukem {
     11      1.1     lukem 		# Refer to newbtconf(8) for more information
     12      1.1     lukem 		#
     13      1.1     lukem 
     14      1.1     lukem 	if [ ! -e /etc/etc.current ]; then
     15      1.1     lukem 		return 0
     16      1.1     lukem 	fi
     17      1.1     lukem 	if [ -h /etc/etc.default ]; then
     18      1.1     lukem 		def=`ls -ld /etc/etc.default 2>&1`
     19      1.3  nisimura 		default="${def##*-> etc.}"
     20      1.1     lukem 	else
     21      1.1     lukem 		default=current
     22      1.1     lukem 	fi
     23      1.4     lukem 	if [ "$default" = "current" ]; then
     24      1.4     lukem 		def=`ls -ld /etc/etc.current 2>&1`
     25      1.4     lukem 		default="${def##*-> etc.}"
     26      1.4     lukem 	fi
     27      1.4     lukem 
     28      1.1     lukem 	spc=""
     29      1.4     lukem 	for i in /etc/etc.*; do
     30      1.3  nisimura 		name="${i##/etc/etc.}"
     31      1.3  nisimura 		case $name in
     32      1.3  nisimura 		current|default|\*)
     33      1.3  nisimura 			continue
     34      1.3  nisimura 			;;	
     35      1.3  nisimura 		*)
     36      1.3  nisimura 			if [ "$name" = "$default" ]; then
     37      1.3  nisimura 				echo -n "${spc}[${name}]"
     38      1.3  nisimura 			else
     39      1.3  nisimura 				echo -n "${spc}${name}"
     40      1.3  nisimura 			fi
     41      1.3  nisimura 			spc=" "
     42      1.3  nisimura 			;;
     43      1.3  nisimura 		esac
     44      1.1     lukem 	done
     45      1.1     lukem 	echo
     46      1.1     lukem 	master=$$
     47      1.1     lukem 	_DUMMY=/etc/passwd
     48      1.1     lukem 	conf=${_DUMMY}
     49      1.1     lukem 	while [ ! -d /etc/etc.$conf/. ]; do
     50  1.5.2.1      tron 		trap "conf=$default; echo; echo Using default of $default" ALRM
     51      1.1     lukem 		echo -n "Which configuration [$default] ? "
     52      1.1     lukem 		(sleep 30 && kill -ALRM $master) >/dev/null 2>&1 &
     53      1.1     lukem 		read conf
     54      1.4     lukem 		trap : ALRM
     55      1.1     lukem 		if [ -z $conf ] ; then
     56      1.1     lukem 			conf=$default
     57      1.1     lukem 		fi
     58      1.1     lukem 		if [ ! -d /etc/etc.$conf/. ]; then
     59      1.1     lukem 			conf=${_DUMMY}
     60      1.1     lukem 		fi
     61      1.1     lukem 	done
     62      1.4     lukem 
     63      1.5       wiz 	case  $conf in
     64      1.4     lukem 	current|default)
     65      1.4     lukem 		;;
     66      1.4     lukem 	*)
     67      1.4     lukem 		rm -f /etc/etc.current
     68      1.4     lukem 		ln -s /etc/etc.$conf /etc/etc.current
     69      1.4     lukem 		;;
     70      1.4     lukem 	esac
     71      1.4     lukem 
     72      1.1     lukem 	if [ -f /etc/rc.conf ] ; then
     73      1.1     lukem 		. /etc/rc.conf
     74      1.1     lukem 	fi
     75      1.1     lukem }
     76      1.1     lukem 
     77      1.1     lukem case "$1" in
     78      1.1     lukem *start)
     79      1.1     lukem 	bootconf_start
     80      1.1     lukem 	;;
     81      1.1     lukem esac
     82