1#!/bin/sh 2# 3# Setup a new config directory 4# 5if [ $# -lt 1 ] ; then 6 echo "Usage: $0 <newconfig> [<baseconfig>]" 7 echo "Usage: $0 init" 8 exit 1; 9fi 10dir=$1 11 12FILES="defaultdomain fstab ifconfig.* inetd.conf mrouted.conf \ 13 mygate myname netstart nsswitch.conf ntp.conf \ 14 rc.conf rc.conf.d resolv.conf" 15 16if [ $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 34fi 35 36if [ "`expr $dir : 'etc\.\(.*\)'`" != $dir ] ; then 37 dir=etc.$dir 38fi 39if [ -e /etc/$dir ] ; then 40 echo "Error: $dir already exists" 41 exit 1; 42fi 43newname=`expr $dir : 'etc.\(.*\)'` 44if [ $# -lt 2 ] ; then 45 orig=etc.current 46 echo "Using current config as base for $newname" 47else 48 orig=$2 49fi 50 51if [ -z "`expr $orig : 'etc.\(.*\)'`" ] ; then 52 orig=etc.$orig 53fi 54 55if [ ! -d /etc/$orig ] ; then 56 echo "Original directory /etc/$orig does not exist." 57 exit 1; 58fi 59mkdir -m 755 /etc/$dir 60cp -p /etc/$orig/* /etc/$dir 61echo "/etc/$dir has now been created and populated." 62exit 0 63