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