123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- SRCDIR=src
- ROOTNAME=bash
- usage()
- {
- echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2
- exit 2
- }
- vmsg()
- {
- if [ -n "$verbose" ]; then
- echo mkdist: "$@"
- fi
- }
- while getopts m:s:r:v name
- do
- case $name in
- m) MANIFEST=$OPTARG ;;
- s) SRCDIR=$OPTARG ;;
- r) ROOTNAME=$OPTARG ;;
- v) verbose=yes ;;
- ?) usage ;;
- esac
- done
- : ${MANIFEST:=$SRCDIR/MANIFEST}
- vmsg using $MANIFEST
- shift $(( $OPTIND - 1 ))
- if [ $# -lt 1 ]; then
- usage
- fi
- version=$1
- newdir=${ROOTNAME}-$version
- vmsg creating distribution for $ROOTNAME version $version in $newdir
- if [ ! -d $newdir ]; then
- mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; }
- fi
- dirmode=755
- filmode=644
- while read fname type mode
- do
- [ -z "$fname" ] && continue
- case "$fname" in
- \
- esac
- case "$type" in
- d) mkdir $newdir/$fname ;;
- f) cp -p $SRCDIR/$fname $newdir/$fname ;;
- s) ln -s $mode $newdir/$fname ; mode= ;;
- l) ln $mode $newdir/$fname ; mode= ;;
- *) echo "unknown file type $type" 1>&2 ;;
- esac
- if [ -n "$mode" ]; then
- chmod $mode $newdir/$fname
- fi
- done < $MANIFEST
- vmsg $newdir created
- exit 0
|