161119Sluigi#!/bin/sh
261119Sluigi# $FreeBSD: releng/11.0/release/picobsd/mfs_tree/stand/update 92059 2002-03-11 05:15:44Z luigi $
391866Sluigi# script to edit and save some config file(s).
491866Sluigi# If called with no arguments, it edits 3 files in /etc
561119Sluigithefiles=$*
691866Sluigi[ -z "$thefiles" ] && \
791866Sluigi    thefiles="/etc/rc.conf /etc/rc.firewall /etc/master.passwd"
892059Sluigidev=`sysctl -n machdep.guessed_bootdev`
992059Sluigi[ -c "${dev}" ] || dev="/dev/fd0"
1061119Sluigimount ${dev} /mnt
1191866Sluigiif [ "$?" != "0" ] ; then
1261119Sluigi	echo ""
1361119Sluigi	echo "Cannot mount ${dev} read-write!"
1461119Sluigi	exit 1
1561119Sluigifi
1691866Sluigi
1791866Sluigiecho "Updating ${thefiles} on ${dev}: "
1891866Sluigi
1991866Sluigifor f in ${thefiles} ; do
2091866Sluigi    case $f in
2191866Sluigi    /etc )
2291866Sluigi	echo  "Update all files in $f :"
2391866Sluigi	srcs=`ls $f`
2491866Sluigi	for i in $srcs ; do
2591866Sluigi	    if [ -f /mnt${f}/${i}.gz ]; then
2691866Sluigi		echo -n "$i ..."
2791866Sluigi		gzip < $f/$i > /mnt${f}/${i}.gz
2891866Sluigi	    fi
2991866Sluigi	done
3091866Sluigi	echo " Done."
3191866Sluigi	;;
3291866Sluigi
3391866Sluigi    passwd|master.passwd)
3491866Sluigi	mkdir -p /mnt/etc
3591866Sluigi	ee /etc/master.passwd
3691866Sluigi	pwd_mkdb /etc/master.passwd
3791866Sluigi	gzip < /etc/master.passwd > /mnt/etc/master.passwd.gz
3891866Sluigi	;;
3991866Sluigi
4091866Sluigi    /*)	# only absolute pathnames are ok
4191866Sluigi	mkdir -p /mnt/etc /mnt/root
4291866Sluigi	[ -f $f ] && ee $f && gzip < $f > /mnt${f}.gz
4391866Sluigi        ;;
4491866Sluigi
4591866Sluigi    *)
4691866Sluigi	echo "File $f not recognised, you must use an absolute pathname."
4791866Sluigi	;;
4891866Sluigi    esac
4991866Sluigidone
5061119Sluigiumount /mnt
51