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