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