1#!/bin/sh
| 1#!/bin/sh
|
2# $FreeBSD: head/release/picobsd/mfs_tree/stand/update 71703 2001-01-27 03:23:44Z luigi $ 3# script to edit and save some config file(s)
| 2# $FreeBSD: head/release/picobsd/mfs_tree/stand/update 91866 2002-03-08 12:14:46Z luigi $ 3# script to edit and save some config file(s). 4# If called with no arguments, it edits 3 files in /etc
|
4thefiles=$*
| 5thefiles=$*
|
5pwd=`pwd` 6dev="/dev/fd0c" 7echo "Updating content on ${dev}: "
| 6[ -z "$thefiles" ] && \ 7 thefiles="/etc/rc.conf /etc/rc.firewall /etc/master.passwd" 8dev=`sysctl -n kern.bootdevname` 9[ -z ${dev} ] && dev="/dev/fd0"
|
8mount ${dev} /mnt
| 10mount ${dev} /mnt
|
9if [ "X$?" != "X0" ] ; then
| 11if [ "$?" != "0" ] ; then
|
10 echo "" 11 echo "Cannot mount ${dev} read-write!" 12 exit 1 13fi
| 12 echo "" 13 echo "Cannot mount ${dev} read-write!" 14 exit 1 15fi
|
14if [ "$thefiles" = "" ] ; then 15 srcs=`ls /etc` 16 for i in $srcs ; do 17 if [ -f /mnt/etc/$i.gz ] ; then 18 echo -n "$i ..." 19 gzip < /etc/$i > /mnt/etc/$i.gz 20 fi 21 done 22elif [ "$thefiles" = "passwd" ] ; then 23 ee /etc/master.passwd 24 pwd_mkdb master.passwd 25 gzip < /etc/master.passwd /mnt/etc/master.passwd.gz 26else 27 for i in $thefiles; do 28 if [ -f $i ] ; then 29 ee $i 30 gzip < $i > /mnt/$i.gz 31 fi 32 done 33fi 34echo " Done." 35echo -n "Updating kernel parameters... " 36kget /mnt/boot/kernel.conf
| 16 17echo "Updating ${thefiles} on ${dev}: " 18 19for f in ${thefiles} ; do 20 case $f in 21 /etc ) 22 echo "Update all files in $f :" 23 srcs=`ls $f` 24 for i in $srcs ; do 25 if [ -f /mnt${f}/${i}.gz ]; then 26 echo -n "$i ..." 27 gzip < $f/$i > /mnt${f}/${i}.gz 28 fi 29 done 30 echo " Done." 31 ;; 32 33 passwd|master.passwd) 34 mkdir -p /mnt/etc 35 ee /etc/master.passwd 36 pwd_mkdb /etc/master.passwd 37 gzip < /etc/master.passwd > /mnt/etc/master.passwd.gz 38 ;; 39 40 /*) # only absolute pathnames are ok 41 mkdir -p /mnt/etc /mnt/root 42 [ -f $f ] && ee $f && gzip < $f > /mnt${f}.gz 43 ;; 44 45 *) 46 echo "File $f not recognised, you must use an absolute pathname." 47 ;; 48 esac 49done
|
37umount /mnt
| 50umount /mnt
|
38cd ${pwd} 39echo " Done."
| |
| |