xref: /netbsd-src/sbin/newbtconf/newbtconf.sh (revision 95d875fb90b1458e4f1de6950286ddcd6644bc61)
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
12if [ $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
32fi
33
34if [ "`expr $dir : 'etc\.\(.*\)'`" != $dir ] ; then
35	dir=etc.$dir
36fi
37if [ -e /etc/$dir ] ; then
38	echo "Error: $dir already exists"
39	exit 1;
40fi
41newname=`expr $dir : 'etc.\(.*\)'`
42if [ $# -lt 2 ] ; then
43	orig=etc.current
44	echo "Using current config as base for $newname"
45else
46	orig=$2
47fi
48
49if [ -z "`expr $orig : 'etc.\(.*\)'`" ] ; then
50	orig=etc.$orig
51fi
52
53if [ ! -d /etc/$orig ] ; then
54	echo "Original directory /etc/$orig does not exist."
55	exit 1;
56fi
57mkdir -m 755 /etc/$dir
58cp -p /etc/$orig/* /etc/$dir
59echo "/etc/$dir has now been created and populated."
60exit 0
61