xref: /netbsd-src/sbin/newbtconf/newbtconf.sh (revision b519c70ad771d0a55b3c2277db6b97a05fa6465d)
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