4.4BSD/usr/src/sys/tahoe/dist/maketape

#!/bin/sh -
#
# Copyright (c) 1990 The Regents of the University of California.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
#    must display the following acknowledgement:
#	This product includes software developed by the University of
#	California, Berkeley and its contributors.
# 4. Neither the name of the University nor the names of its contributors
#    may be used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#	@(#)maketape	5.7 (Berkeley) 7/4/90
#

# maketape [ 6250 | 1600 [ tapename [ remotetapemachine ] ] ]
miniroot=dk4a
bootroot=dk2b
nbsd=dk1a
nbsdusr=dk0c
tape=/dev/rmt20
type=6250
block=40
tflag=cbf
bprog="/usr/local/20b 20480"

if [ $# -gt 0 ]; then
	type=$1;
fi

if [ $# -gt 1 ]; then
	tape=$2;
fi

tartape=$tape
if [ $# -gt 2 ]; then
	remote=$3;
	tartape='-';
fi

rsh $remote mt -t ${tape} rew
date
umount /dev/$nbsdusr
umount /dev/$nbsd
mount -r /dev/$nbsd /nbsd
mount -r /dev/$nbsdusr /nbsd/usr
cd /nbsd
sync

if [ $type = '1600a' ]
then
	type=1600
fi

echo "Install image of bootstrap file system"
eval dd if=/dev/r${bootroot} count=750 bs=1024 conv=sync ${remote+"| rsh"} \
	${remote-"of=$tape"} ${remote+'/usr/local/20b 1024 ">" $tape'}

echo "Add image of mini-root file system"
eval dd if=/dev/r${miniroot} count=205 bs=10240 conv=sync ${remote+"| rsh"} \
	${remote-"of=$tape"} ${remote+'/usr/local/20b ">" $tape'}

echo "Add full dump of real file system"
/sbin/${remote+r}dump 0f $remote${remote+:}${tape} /nbsd

echo "Add tar image of /usr"
cd /nbsd/usr
tar ${tflag} ${block} ${tartape} bin contrib games include lib libdata \
	libexec local obj old sbin share | rsh $remote ${bprog} ">" $tape

if [ ${type} != '6250' ]
then
	echo "Done, rewinding first tape"
	rsh $remote mt -t ${tape} rew &
	echo "Mount second tape and hit return when ready"
	echo "(or type name of next tape drive)"
	read x
	if [ "$x" != "" ]
	then	tape=$x
	fi
fi

: tape2:
echo "Add user source code"
FILES="Makefile bin etc games include kerberosIV lib libexec old \
	pgrm sbin share usr.bin usr.sbin"
cd /nbsd/usr/src
tar ${tflag} ${block} ${tartape} ${FILES} | rsh $remote ${bprog} ">" $tape

#echo "Add varian fonts"
#cd /usr/lib/vfont
#tar ${tflag} ${block} ${tartape} . ${remote+'| $remote ${bprog} ">" $tape'}
if [ ${type} != '6250' ]
then
	echo "Done, rewinding second tape"
	$remote mt -t ${tape} rew &
	echo "Mount third tape and hit return when ready"
	echo "(or type name of next tape drive)"
	read x
	if [ "$x" != "" ]
	then	tape=$x
	fi
fi

: tape3:
echo "Add tar image of system sources"
cd /nbsd/usr/src/sys
tar ${tflag} ${block} ${tartape} . | rsh $remote ${bprog} ">" $tape

echo "Add user contributed software"
# standard (always uncompressed) directories:
FILES="Makefile Makefile.inc ansi bib emacs emacs-18.55.tar.Z jove kermit \
	mh.tar.Z patch rcs vmsprep"
cd /nbsd/usr/src/contrib
tar ${tflag} ${block} ${tartape} ${FILES} | rsh $remote ${bprog} ">" $tape

#echo "Add ingres source"
#cd /nbsd/usr/ingres; eval tar ${tflag} ${block} ${tartape} . \
#	${remote+'| rsh $remote ${bprog} ">" $tape'}

echo "Done, rewinding tape"
rsh $remote mt -t ${tape} rew &