1 1.1 lukem #!/bin/sh 2 1.1 lukem # 3 1.2 lukem # $NetBSD: bootconf.sh,v 1.2 2000/08/21 23:34:45 lukem 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.1 lukem default=`expr "$def" : '.*-> etc\.\(.*\)' 2>&1` 20 1.1 lukem else 21 1.1 lukem default=current 22 1.1 lukem fi 23 1.1 lukem spc="" 24 1.1 lukem conflist=`cd /etc; ls -1d etc.* 2>&1 | egrep -v "current|default"` 25 1.1 lukem for i in $conflist; do 26 1.1 lukem name=${i#etc.} 27 1.1 lukem if [ "$name" = "$default" ]; then 28 1.1 lukem echo -n "${spc}[${name}]" 29 1.1 lukem else 30 1.1 lukem echo -n "${spc}${name}" 31 1.1 lukem fi 32 1.1 lukem spc=" " 33 1.1 lukem done 34 1.1 lukem echo 35 1.1 lukem master=$$ 36 1.1 lukem _DUMMY=/etc/passwd 37 1.1 lukem conf=${_DUMMY} 38 1.1 lukem while [ ! -d /etc/etc.$conf/. ]; do 39 1.1 lukem trap "conf=$default; echo; echo Using default of $conf" 14 40 1.1 lukem echo -n "Which configuration [$default] ? " 41 1.1 lukem (sleep 30 && kill -ALRM $master) >/dev/null 2>&1 & 42 1.1 lukem read conf 43 1.1 lukem trap : 14 44 1.1 lukem if [ -z $conf ] ; then 45 1.1 lukem conf=$default 46 1.1 lukem fi 47 1.1 lukem if [ ! -d /etc/etc.$conf/. ]; then 48 1.1 lukem conf=${_DUMMY} 49 1.1 lukem fi 50 1.1 lukem done 51 1.1 lukem rm -f /etc/etc.current 52 1.1 lukem ln -s /etc/etc.$conf /etc/etc.current 53 1.1 lukem if [ -f /etc/rc.conf ] ; then 54 1.1 lukem . /etc/rc.conf 55 1.1 lukem fi 56 1.1 lukem } 57 1.1 lukem 58 1.1 lukem case "$1" in 59 1.1 lukem *start) 60 1.1 lukem bootconf_start 61 1.1 lukem ;; 62 1.1 lukem esac 63