#!/bin/sh # How to make a distribution tarfile. # # $1 is the name of the program. # $2 is the version number. # Remaining args are files to tar. # Optional argument of ~+notar" means don't create the actual tar file, # just create the symlinked directory. tar_inhibited="" if [ "$1" = "+notar" ]; then tar_inhibited=yes shift fi PROGRAM=$1 VERSION=$2 shift; shift if [ "$PROGRAM" = "" -o "$VERSION" = "" ]; then echo "Usage: mktarfile [+notar] " exit 2; fi TARFILE=$PROGRAM.tar TARDIR=$PROGRAM-$VERSION # Delete the tarfile if we are to create it. if [ ! "tar_inhibited" ]; then rm -rf $TARFILE fi # Delete the destination directory if it already exists. rm -rf $TARDIR # Make the destination directory. echo "Making directory $TARDIR..." mkdir $TARDIR topdir=`pwd` where_I_am=$TARDIR trap "cd $topdir" 3 for i in $*; do filename=$i while [ "$filename" ]; do remainder=`echo $filename | sed 's@[-_a-zA-Z~0-9.]*/@@'` dir=`echo $filename | sed "s@$remainder@@" | sed "s@/@@"` if [ "$dir" ]; then if [ ! -d $where_I_am/$dir ]; then echo "Making directory $where_I_am/$dir..." mkdir $where_I_am/$dir fi cd $where_I_am/$dir; where_I_am=`pwd` filename=$remainder else break fi done cd $topdir; where_I_am=$TARDIR ln -s $topdir/$i $TARDIR/$i done if [ ! "$tar_inhibited" ]; then tar -chf $TARFILE $TARDIR rm -rf $TARDIR fi exit 0