makesrctars revision 1.17
11.1Sjtc#! /bin/sh
21.3Smikel#
31.17Slukem#	$NetBSD: makesrctars,v 1.17 2004/04/20 06:36:35 lukem Exp $
41.15Slukem#
51.15Slukem# makesrctars srcdir setdir
61.15Slukem#	Create source tarballs in setdir from the source under srcdir.
71.3Smikel#
81.1Sjtc
91.17Slukemprog=${0##*/}
101.17Slukem
111.17Slukem# set defaults
121.13Slukem: ${CKSUM=cksum}
131.17Slukem: ${PAX=pax}
141.17Slukem
151.17Slukemxsrcdir=
161.13Slukem
171.14SlukemGZIP=-9
181.1Sjtcexport GZIP
191.1Sjtc
201.17Slukemusage()
211.17Slukem{
221.17Slukem	cat 1>&2 <<USAGE
231.17SlukemUsage: ${prog} [-x xsrcdir] srcdir setdir
241.17Slukem	-x xsrcdir	build xsrc.tgz from xsrcdir
251.17Slukem	srcdir		location of sources
261.17Slukem	setdir		where to write the .tgz files to
271.17SlukemUSAGE
281.17Slukem	exit 1
291.17Slukem}
301.17Slukem
311.17Slukem# handle args
321.17Slukemwhile getopts x: ch; do
331.17Slukem	case ${ch} in
341.17Slukem	x)	
351.17Slukem		xsrcdir=${OPTARG}
361.17Slukem		;;
371.17Slukem	*)
381.17Slukem		usage
391.17Slukem		;;
401.17Slukem	esac
411.17Slukemdone
421.17Slukemshift $((${OPTIND} - 1))
431.17Slukem
441.15Slukemif [ $# -ne 2 ]; then
451.15Slukem	echo "Usage: $0 srcdir setdir"
461.1Sjtc	exit 1
471.1Sjtcfi
481.15Slukemsrcdir=$1
491.15Slukemsetdir=$2
501.1Sjtc
511.15Slukemif [ ! -d "${setdir}" ]; then
521.15Slukem	echo "${setdir} is not a directory"
531.1Sjtc	exit 1
541.1Sjtcfi
551.1Sjtc
561.15Slukemmakeset()
571.15Slukem{
581.15Slukem	set=$1.tgz
591.15Slukem	shift
601.15Slukem	echo "Creating ${set}"
611.15Slukem	set -f
621.15Slukem	find -s $* \
631.15Slukem	    ! \( \( -name obj -o -name 'obj.*' \) \( -type l -o -type d \) \) \
641.15Slukem	    -print \
651.17Slukem	    | ${PAX} -w -d -s'|^\.|'${srcprefix}'|' \
661.15Slukem	    | gzip \
671.15Slukem	    > "${setdir}/${set}"
681.15Slukem	set +f
691.15Slukem}
701.15Slukem
711.15Slukem
721.17Slukem# create (base)src sets
731.17Slukem#
741.17Slukem
751.17Slukemif ! cd "${srcdir}"; then
761.17Slukem	echo "Can't chdir to ${srcdir}"
771.17Slukem	exit 1
781.17Slukemfi
791.17Slukem
801.17Slukemsrcprefix=usr/src
811.17Slukem
821.16Slukemmakeset src .						\
831.16Slukem		! \( \(	-path ./gnu			\
841.16Slukem		     -o -path ./share			\
851.16Slukem		     -o -path ./sys			\
861.16Slukem		     -o -path ./contrib/sys		\
871.16Slukem		     -o -path ./usr.sbin/config		\
881.16Slukem		    \) -prune \)
891.15Slukem
901.15Slukemmakeset gnusrc ./gnu
911.15Slukem
921.16Slukemmakeset syssrc ./sys ./contrib/sys ./usr.sbin/config			\
931.15Slukem		! \( -path ./sys/arch/\*/compile/\* -type d		\
941.15Slukem		    ! -name CVS -prune \)
951.1Sjtc
961.15Slukemmakeset sharesrc ./share
971.6Sperry
981.17Slukem
991.17Slukem# create xsrc sets
1001.17Slukem#
1011.17Slukemif [ -n "${xsrcdir}" ]; then
1021.17Slukem	if ! cd "${xsrcdir}"; then
1031.17Slukem		echo "Can't chdir to ${xsrcdir}"
1041.17Slukem		exit 1
1051.17Slukem	fi
1061.17Slukem	srcprefix=usr/xsrc
1071.17Slukem	makeset xsrc .
1081.17Slukemfi
1091.17Slukem
1101.17Slukem
1111.16Slukemecho "Creating checksum files"
1121.15Slukem(cd ${setdir}
1131.13Slukem	${CKSUM} -o1 *.tgz > BSDSUM
1141.13Slukem	${CKSUM}     *.tgz > CKSUM
1151.13Slukem	${CKSUM} -m  *.tgz > MD5
1161.13Slukem	${CKSUM} -o2 *.tgz > SYSVSUM
1171.13Slukem)
118