makesrctars revision 1.19
11.1Sjtc#! /bin/sh
21.3Smikel#
31.19Slukem#	$NetBSD: makesrctars,v 1.19 2005/05/22 03:05:15 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.19Slukem	find $* \
631.18Slukem	    ! \( \( -name obj -o -name 'obj.*' \) \( -type l -o -type d \) -prune \) \
641.15Slukem	    -print \
651.19Slukem	    | sort \
661.17Slukem	    | ${PAX} -w -d -s'|^\.|'${srcprefix}'|' \
671.15Slukem	    | gzip \
681.15Slukem	    > "${setdir}/${set}"
691.15Slukem	set +f
701.15Slukem}
711.15Slukem
721.15Slukem
731.17Slukem# create (base)src sets
741.17Slukem#
751.17Slukem
761.17Slukemif ! cd "${srcdir}"; then
771.17Slukem	echo "Can't chdir to ${srcdir}"
781.17Slukem	exit 1
791.17Slukemfi
801.17Slukem
811.17Slukemsrcprefix=usr/src
821.17Slukem
831.16Slukemmakeset src .						\
841.16Slukem		! \( \(	-path ./gnu			\
851.16Slukem		     -o -path ./share			\
861.16Slukem		     -o -path ./sys			\
871.16Slukem		     -o -path ./contrib/sys		\
881.16Slukem		     -o -path ./usr.sbin/config		\
891.16Slukem		    \) -prune \)
901.15Slukem
911.15Slukemmakeset gnusrc ./gnu
921.15Slukem
931.16Slukemmakeset syssrc ./sys ./contrib/sys ./usr.sbin/config			\
941.15Slukem		! \( -path ./sys/arch/\*/compile/\* -type d		\
951.15Slukem		    ! -name CVS -prune \)
961.1Sjtc
971.15Slukemmakeset sharesrc ./share
981.6Sperry
991.17Slukem
1001.17Slukem# create xsrc sets
1011.17Slukem#
1021.17Slukemif [ -n "${xsrcdir}" ]; then
1031.17Slukem	if ! cd "${xsrcdir}"; then
1041.17Slukem		echo "Can't chdir to ${xsrcdir}"
1051.17Slukem		exit 1
1061.17Slukem	fi
1071.17Slukem	srcprefix=usr/xsrc
1081.17Slukem	makeset xsrc .
1091.17Slukemfi
1101.17Slukem
1111.17Slukem
1121.16Slukemecho "Creating checksum files"
1131.15Slukem(cd ${setdir}
1141.13Slukem	${CKSUM} -o1 *.tgz > BSDSUM
1151.13Slukem	${CKSUM}     *.tgz > CKSUM
1161.13Slukem	${CKSUM} -m  *.tgz > MD5
1171.13Slukem	${CKSUM} -o2 *.tgz > SYSVSUM
1181.13Slukem)
119