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