1 1.1 darrenr #!/bin/sh 2 1.1 darrenr # 3 1.1 darrenr # Setup a new config directory 4 1.1 darrenr # 5 1.1 darrenr if [ $# -lt 1 ] ; then 6 1.1 darrenr echo "Usage: $0 <newconfig> [<baseconfig>]" 7 1.1 darrenr echo "Usage: $0 init" 8 1.1 darrenr exit 1; 9 1.1 darrenr fi 10 1.1 darrenr dir=$1 11 1.1 darrenr 12 1.3 lukem FILES="defaultdomain fstab ifconfig.* inetd.conf mrouted.conf \ 13 1.3 lukem mygate myname netstart nsswitch.conf ntp.conf rbootd.conf \ 14 1.3 lukem rc.conf rc.conf.d resolv.conf" 15 1.3 lukem 16 1.1 darrenr if [ $dir = init ] ; then 17 1.1 darrenr if [ -d /etc/etc.network -o -e /etc/etc/current ] ; then 18 1.1 darrenr echo "Error: multi-configuration already initialized" 19 1.1 darrenr exit 1 20 1.1 darrenr fi 21 1.1 darrenr dir=etc.network 22 1.1 darrenr cd /etc 23 1.1 darrenr mkdir -m 755 $dir 24 1.1 darrenr ln -s $dir etc.current 25 1.1 darrenr ln -s $dir etc.default 26 1.3 lukem for i in ${FILES}; do 27 1.1 darrenr if [ -f $i ] ; then 28 1.1 darrenr mv $i $dir 29 1.1 darrenr ln -s etc.current/$i . 30 1.1 darrenr fi 31 1.1 darrenr done 32 1.1 darrenr echo "/etc/$dir has now been created and populated." 33 1.1 darrenr exit 0 34 1.1 darrenr fi 35 1.1 darrenr 36 1.1 darrenr if [ "`expr $dir : 'etc\.\(.*\)'`" != $dir ] ; then 37 1.1 darrenr dir=etc.$dir 38 1.1 darrenr fi 39 1.1 darrenr if [ -e /etc/$dir ] ; then 40 1.1 darrenr echo "Error: $dir already exists" 41 1.1 darrenr exit 1; 42 1.1 darrenr fi 43 1.1 darrenr newname=`expr $dir : 'etc.\(.*\)'` 44 1.1 darrenr if [ $# -lt 2 ] ; then 45 1.1 darrenr orig=etc.current 46 1.1 darrenr echo "Using current config as base for $newname" 47 1.1 darrenr else 48 1.1 darrenr orig=$2 49 1.1 darrenr fi 50 1.1 darrenr 51 1.1 darrenr if [ -z "`expr $orig : 'etc.\(.*\)'`" ] ; then 52 1.1 darrenr orig=etc.$orig 53 1.1 darrenr fi 54 1.1 darrenr 55 1.2 darrenr if [ ! -d /etc/$orig ] ; then 56 1.2 darrenr echo "Original directory /etc/$orig does not exist." 57 1.2 darrenr exit 1; 58 1.2 darrenr fi 59 1.1 darrenr mkdir -m 755 /etc/$dir 60 1.1 darrenr cp -p /etc/$orig/* /etc/$dir 61 1.1 darrenr echo "/etc/$dir has now been created and populated." 62 1.1 darrenr exit 0 63