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