unshar 1.3 - SHAR extract script
Tom Neff
tneff at bfmny0.UUCP
Wed Aug 9 04:21:34 AEST 1989
This is what I use to grab stuff from the source newsgroups.
It automatically skips the garbage in front of most archives.
It will create a new storage directory for you if you want.
I have spruced up the messages a bit in the interests of user
friendliness. The 'sync' at the end is optional.
--- cut dear --- cut dear --- cut dear --- cut dear --- cut dear ---
:
# @(#)$Id: unshar,v 1.3 89/08/08 14:14:27 tneff Exp $
#
# PUBLIC DOMAIN - HACK AWAY
#
# Unpack a SHAR archive, with optional leading and trailing garbage
#
# This script uses sed(1) and sh(1) to unpack a shell archive from
# the standard input. Results are written to the current directory
# unless you supply a directory name as the first argument. If the
# directory does not exist yet, you can force it to be created with
# the -c switch.
#
# Usage: unshar [[-c] <dirname>]
#
# Since unshar is a filter, it's nice with rn or mailers.
#
# Example: at the rn article prompt in a source group, type:
#
# what next? [^Nnpq] |unshar -c /usr/src/simelvis
#
# $Log: unshar,v $
# Revision 1.3 89/08/08 14:14:27 tneff
# Added error checking.
# Improved user messages and comments.
# Added -p switch to mkdir.
#
# Revision 1.2 89/08/07 19:09:31 tneff
# Added -c flag to force creation of destination directory.
#
# Revision 1.1 89/07/18 19:34:14 tneff
# Initial revision
#
# set -vx
Command=`basename $0`
Tmpsh=/tmp/US$$.sh # change this if needed
abort() {
echo "$Command: $*" >&2
exit 1
}
usage() {
echo "syntax: unshar [[-c] <dirname>]" >&2
exit 1
}
if [ "$1" = "-c" ] && [ "$2" ]
then
if [ -d "$2" ]
then
abort dir $2 already exists
else
if mkdir -p $2
then :
else
abort mkdir error
exit 2
fi
fi
shift
fi
case $# in
0) ;;
1) if [ -d $1 ]
then
cd $1 || abort cannot cd to $1
set ""
else
usage
fi
;;
*) usage
;;
esac
sed '/^#/,$!d' $1 > $Tmpsh
if [ $? -gt 0 ]
then
echo "$0: sed error!"
exit 2
fi
if /bin/sh $Tmpsh
then
echo "Extracted OK"
else
abort extract error!
fi
rm -f $Tmpsh
# This is optional, comment it out if you prefer
sync
exit 0
--
"We walked on the moon -- (( Tom Neff
you be polite" )) tneff at bfmny0.UU.NET
More information about the Alt.sources
mailing list