mkdist revision 47558
1#! /bin/bash - 2# 3# mkdist - make a distribution directory from a master manifest file 4# 5# usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 6# 7# SRCDIR defaults to src 8# MANIFEST defaults to $SRCDIR/MANIFEST 9# 10 11SRCDIR=src 12ROOTNAME=bash 13 14usage() 15{ 16 echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2 17 exit 2 18} 19 20vmsg() 21{ 22 if [ -n "$verbose" ]; then 23 echo mkdist: "$@" 24 fi 25} 26 27while getopts m:s:r:v name 28do 29 case $name in 30 m) MANIFEST=$OPTARG ;; 31 s) SRCDIR=$OPTARG ;; 32 r) ROOTNAME=$OPTARG ;; 33 v) verbose=yes ;; 34 ?) usage ;; 35 esac 36done 37 38: ${MANIFEST:=$SRCDIR/MANIFEST} 39 40vmsg using $MANIFEST 41 42shift $(( $OPTIND - 1 )) 43 44if [ $# -lt 1 ]; then 45 usage 46fi 47 48version=$1 49newdir=${ROOTNAME}-$version 50 51vmsg creating distribution for $ROOTNAME version $version in $newdir 52 53if [ ! -d $newdir ]; then 54 mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; } 55fi 56 57dirmode=755 58filmode=644 59 60while read fname type mode 61do 62 [ -z "$fname" ] && continue 63 64 case "$fname" in 65 \#*) continue ;; 66 esac 67 68 case "$type" in 69 d) mkdir $newdir/$fname ;; 70 f) cp -p $SRCDIR/$fname $newdir/$fname ;; 71 *) echo "unknown file type $type" 1>&2 ;; 72 esac 73 74 if [ -n "$mode" ]; then 75 chmod $mode $newdir/$fname 76 fi 77 78done < $MANIFEST 79 80# cut off the `-alpha' in something like `2.0-alpha', leaving just the 81# 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