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