NetBSD/distrib/sets/maketars
jmc 37a2db8a6c Change pipeline in sets building so proper error detection for each stage
can be detected. This way sets stop building at the exact file that doesn't
exist rather than continuing.
2001-01-22 07:03:44 +00:00

88 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
#
# $NetBSD: maketars,v 1.15 2001/01/22 07:03:44 jmc Exp $
#
# Make release tar files for some or all lists. Usage:
# maketars [-b] [-x] [-a arch] [-m machine] [-s setsdir] [-d destdir] \
# [-t tardir] [setname ...]
#
# set defaults
: ${MAKE=make}
machine=${MACHINE:-`printf 'xxx:\n\techo ${MACHINE}' | $MAKE -s -f-`}
arch=${MACHINE_ARCH:-`printf 'xxx:\n\techo ${MACHINE_ARCH}' | $MAKE -s -f-`}
setd=`pwd`
nlists="base comp etc games man misc text"
xlists="xbase xcomp xcontrib xfont xserver xmisc"
lists=$nlists
tars=$RELEASEDIR
dest=$DESTDIR
# handle args
while : ; do
case $1 in
-b*)
lists="$xlists $nlists"
;;
-x*)
lists=$xlists
;;
-a*)
arch=$2; shift
;;
-m*)
machine=$2; shift
;;
-s*)
setd=$2; shift
;;
-d*)
dest=$2; shift
;;
-t*)
tars=$2; shift
;;
-*)
cat 1>&2 <<USAGE
Usage: $0 [-b] [-x] [-a arch] [-m machine] [-s setsdir]
[-d dest] [-t tars] [setname ...]
-b make netbsd + x11 lists
-x only make x11 lists
-a arch set arch (e.g, m68k, mips, powerpc) [$arch]
-m machine set machine (e.g, amiga, i386, macppc) [$machine]
-s setsdir directory to find sets [$setd]
-d dest \$DESTDIR [$dest]
-t tars \$RELEASEDIR [$tars]
[setname ...] sets to build [$lists]
USAGE
exit 1
;;
*)
break
;;
esac
shift
done
if [ -n "$*" ]; then
lists="$*"
fi
if [ -z "$tars" ]; then
echo \$RELEASEDIR must be set
exit 1
fi
if [ -z "$dest" ]; then
echo \$DESTDIR must be set
exit 1
fi
trap 'rm -f ${dest}/tmp/flist' 0
set -e
for setname in $lists; do
out=$setname.tgz
echo "making $out"
sh $setd/makeflist -a $arch -m $machine -s $setd $setname > ${dest}/tmp/flist
(cd $dest ; pax -w -d -z < ${dest}/tmp/flist) > ${tars}/$out
done