make shell archives
mlr at ihuxn.UUCP
mlr at ihuxn.UUCP
Wed Sep 21 23:02:01 AEST 1983
I know that some programs to create shell archives have been
posted to the net, but I have a cheap and dirty shell script
that will take files and make a sh archivable file out of
them. I hope that you enjoy it.
Simply strip off the above comments.
############################################################
# #
# MKSHAR #
# #
# Make Shell Archives #
# #
# Michael L. Robins #
# #
# September 20, 1983 #
# #
############################################################
if [ $# -lt 2 ]
then
cat << !
usage: mkshar outfile file1 file2 ...
mkshar will use the named outfile and create
a file that when invoked with sh will extract
file1 file2 ... from outfile.ar.
Only printable files are allowed.
!
exit 1
fi
append=0
OUTFILE=$1.ar
if [ -w $OUTFILE ]
then
echo "FILE ($OUTFILE) ALREADY EXISTS"
echo "Hit <CR> to append, anything else to exit \c"
read ans
if [ -z $ans ]
then
echo "Appending to $OUTFILE"
append=1
continue
else
echo "mkshar:Terminated"
exit 1
fi
fi
shift
if [ $append = 0 ]
then
cat << ! >> $OUTFILE
############################################################
#
# $OUTFILE
#
# To extract the files from this shell archive file
# simply create a directory for this file
# and move the archive file to it
# and enter the command
#
# sh filename.ar
#
# Do not use csh
# The files will be extracted automatically
#
############################################################
!
fi
while [ "$1"x != x ]
do
# Make sure the file is printable and not outfile.ar file
file $1 | egrep "text" >/dev/null
if [ $? -ne 0 ]
then
echo "($1) ignored: Not printable"
shift
continue 1
fi
if [ $1 = $OUTFILE ]
then
echo "($1) ignored: can not be archived"
shift
continue 1
fi
echo "Archiving $1 --> $OUTFILE"
echo "echo \"Extracting $1 <-- $OUTFILE\"" >> $OUTFILE
echo "cat << \\===$1=== > $1" >> $OUTFILE
cat $1 >> $OUTFILE
echo "" >> $OUTFILE
echo "===$1===" >> $OUTFILE
echo "# ----------" >> $OUTFILE
shift
done
--
M.L. Robins ihuxn!mlr
More information about the Comp.sources.unix
mailing list