Files
oldlinux-files/bin/old/bash-1.11/support/mktarfile
2024-02-19 00:21:52 -05:00

72 lines
1.4 KiB
Bash
Executable File

#!/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] <progname> <version> <file ...>"
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