Home | History | Annotate | Line # | Download | only in newbtconf
newbtconf.sh revision 1.3
      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