#!/bin/sh # # $NetBSD: maketars,v 1.18 2002/02/27 10:51:47 lukem Exp $ # # Make release tar files for some or all lists. Usage: # maketars [-b] [-x] [-a arch] [-m machine] [-s setsdir] # [-M metalog] [-d destdir] [-t tardir] [setname ...] # # set defaults : ${MAKE=make} : ${PAX=pax} : ${MTREE=mtree} machine=`${MAKE} print_machine` machine_arch=`${MAKE} print_machine_arch` setd=`pwd` nlists="base comp etc games man misc text" xlists="xbase xcomp xcontrib xfont xserver xmisc" lists=$nlists tars=$RELEASEDIR dest=$DESTDIR metalog= # handle args while : ; do case $1 in -b*) lists="$xlists $nlists" ;; -x*) lists=$xlists ;; -a*) machine_arch=$2; shift ;; -M*) metalog=$2; shift ;; -m*) machine=$2; shift ;; -s*) setd=$2; shift ;; -d*) dest=$2; shift ;; -t*) tars=$2; shift ;; -*) cat 1>&2 < $SDIR/metadirs sed -e "s,^\.$dest,.," < $metalog > $SDIR/metafiles cat $SDIR/metadirs $SDIR/metafiles | sort -u > $SDIR/metalog fi GZIP=-9 # for pax -z export GZIP es=0 for setname in $lists; do out=$setname.tgz echo "making $out" sh $setd/makeflist -a $machine_arch -m $machine -s $setd $setname \ > $SDIR/flist.$setname if [ -n "$metalog" ]; then awk -f getdirs.awk $SDIR/flist.$setname | sort -u \ > $SDIR/flist.full echo "/set uname=root gname=wheel" > $SDIR/plist.$setname join $SDIR/flist.full $SDIR/metalog >> $SDIR/plist.$setname else mv $SDIR/flist.$setname $SDIR/plist.$setname fi ( cd $dest ; \ ${PAX} -w -d -z ${metalog:+-N$dest/etc} ${metalog:+-M} \ < ${SDIR}/plist.$setname ) > ${tars}/$out es=$(($es + $?)) done exit $es