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