mkdist revision 26497
11553Srgrimes#! /bin/bash -
21553Srgrimes#
31553Srgrimes# mkdist - make a distribution directory from a master manifest file
41553Srgrimes#
51553Srgrimes# usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version
61553Srgrimes#
71553Srgrimes# SRCDIR defaults to src
81553Srgrimes# MANIFEST defaults to $SRCDIR/MANIFEST
91553Srgrimes#
101553Srgrimes
111553SrgrimesSRCDIR=src
121553SrgrimesROOTNAME=bash
131553Srgrimes
141553Srgrimesusage()
151553Srgrimes{
161553Srgrimes	echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2
171553Srgrimes	exit 2
181553Srgrimes}
191553Srgrimes
201553Srgrimesvmsg()
211553Srgrimes{
221553Srgrimes	if [ -n "$verbose" ]; then
231553Srgrimes		echo mkdist: "$@"
241553Srgrimes	fi
251553Srgrimes}
261553Srgrimes
271553Srgrimeswhile getopts m:s:r:v name
281553Srgrimesdo
291553Srgrimes	case $name in
301553Srgrimes	m)	MANIFEST=$OPTARG ;;
311553Srgrimes	s)	SRCDIR=$OPTARG ;;
321553Srgrimes	r)	ROOTNAME=$OPTARG ;;
331553Srgrimes	v)	verbose=yes ;;
341553Srgrimes	?)	usage ;;
3578146Sgad	esac
3678146Sgaddone
371553Srgrimes
381553Srgrimes: ${MANIFEST:=$SRCDIR/MANIFEST}
391553Srgrimes
4039084Swollmanvmsg using $MANIFEST
41117599Sgad
421553Srgrimesshift $(( $OPTIND - 1 ))
43100203Sgad
44100203Sgadif [ $# -lt 1 ]; then
45100203Sgad	usage
46100203Sgadfi
47100203Sgad
481553Srgrimesversion=$1
491553Srgrimesnewdir=${ROOTNAME}-$version
5098152Sgad
51100203Sgadvmsg creating distribution for version $version in $newdir
5298279Sgad
5378750Sgadif [ ! -d $newdir ]; then
5498152Sgad	mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; }
5598278Sgadfi
5698278Sgad
5798152Sgaddirmode=755
5898267Sgadfilmode=644
5978750Sgad
6078750Sgadwhile read fname type mode
6178146Sgaddo
6278146Sgad	[ -z "$fname" ] && continue
6398152Sgad
6498267Sgad	case "$fname" in
6598267Sgad	\#*)	continue ;;
6698152Sgad	esac
6778146Sgad
6898152Sgad	case "$type" in
6998279Sgad	d)	mkdir $newdir/$fname ;;
70100203Sgad	f)	cp -p $SRCDIR/$fname $newdir/$fname ;;
7198152Sgad	*)	echo "unknown file type $type" 1>&2 ;;
72100203Sgad	esac
73100203Sgad
74100203Sgad	if [ -n "$mode" ]; then
75100203Sgad		chmod $mode $newdir/$fname
76100203Sgad	fi
771553Srgrimes
781553Srgrimesdone < $MANIFEST
791553Srgrimes
801553Srgrimes# cut off the `-alpha' in something like `2.0-alpha', leaving just the
8139084Swollman# numeric version
82#version=${version%%-*}
83
84#case "$version" in
85#*.*.*)	vers=${version%.*} ;;
86#*.*)	vers=${version} ;;
87#esac
88
89#echo $vers > $newdir/.distribution
90
91#case "$version" in
92#*.*.*)	plevel=${version##*.} ;;
93#*)	plevel=0 ;;
94#esac
95#[ -z "$plevel" ] && plevel=0
96#echo ${plevel} > $newdir/.patchlevel
97
98vmsg $newdir created
99
100exit 0
101