makesrctars revision 1.19
1#! /bin/sh
2#
3#	$NetBSD: makesrctars,v 1.19 2005/05/22 03:05:15 lukem Exp $
4#
5# makesrctars srcdir setdir
6#	Create source tarballs in setdir from the source under srcdir.
7#
8
9prog=${0##*/}
10
11# set defaults
12: ${CKSUM=cksum}
13: ${PAX=pax}
14
15xsrcdir=
16
17GZIP=-9
18export GZIP
19
20usage()
21{
22	cat 1>&2 <<USAGE
23Usage: ${prog} [-x xsrcdir] srcdir setdir
24	-x xsrcdir	build xsrc.tgz from xsrcdir
25	srcdir		location of sources
26	setdir		where to write the .tgz files to
27USAGE
28	exit 1
29}
30
31# handle args
32while getopts x: ch; do
33	case ${ch} in
34	x)	
35		xsrcdir=${OPTARG}
36		;;
37	*)
38		usage
39		;;
40	esac
41done
42shift $((${OPTIND} - 1))
43
44if [ $# -ne 2 ]; then
45	echo "Usage: $0 srcdir setdir"
46	exit 1
47fi
48srcdir=$1
49setdir=$2
50
51if [ ! -d "${setdir}" ]; then
52	echo "${setdir} is not a directory"
53	exit 1
54fi
55
56makeset()
57{
58	set=$1.tgz
59	shift
60	echo "Creating ${set}"
61	set -f
62	find $* \
63	    ! \( \( -name obj -o -name 'obj.*' \) \( -type l -o -type d \) -prune \) \
64	    -print \
65	    | sort \
66	    | ${PAX} -w -d -s'|^\.|'${srcprefix}'|' \
67	    | gzip \
68	    > "${setdir}/${set}"
69	set +f
70}
71
72
73# create (base)src sets
74#
75
76if ! cd "${srcdir}"; then
77	echo "Can't chdir to ${srcdir}"
78	exit 1
79fi
80
81srcprefix=usr/src
82
83makeset src .						\
84		! \( \(	-path ./gnu			\
85		     -o -path ./share			\
86		     -o -path ./sys			\
87		     -o -path ./contrib/sys		\
88		     -o -path ./usr.sbin/config		\
89		    \) -prune \)
90
91makeset gnusrc ./gnu
92
93makeset syssrc ./sys ./contrib/sys ./usr.sbin/config			\
94		! \( -path ./sys/arch/\*/compile/\* -type d		\
95		    ! -name CVS -prune \)
96
97makeset sharesrc ./share
98
99
100# create xsrc sets
101#
102if [ -n "${xsrcdir}" ]; then
103	if ! cd "${xsrcdir}"; then
104		echo "Can't chdir to ${xsrcdir}"
105		exit 1
106	fi
107	srcprefix=usr/xsrc
108	makeset xsrc .
109fi
110
111
112echo "Creating checksum files"
113(cd ${setdir}
114	${CKSUM} -o1 *.tgz > BSDSUM
115	${CKSUM}     *.tgz > CKSUM
116	${CKSUM} -m  *.tgz > MD5
117	${CKSUM} -o2 *.tgz > SYSVSUM
118)
119