#!/bin/sh PFILE=$1 shift PATCH_OPTS=$* TMPDIR=/tmp/patch.$$ # give ourselves a place to hide and put the patch there mkdir $TMPDIR || exit 1 cp $PFILE $TMPDIR || exit 1 pushd $TMPDIR || exit 1 # possibly extract the patch (uudeview -i -m -t $PFILE gunzip *.gz gunzip *.Z bunzip2 *.bz2 ) > /dev/null 2> /dev/null PATCH=`grep -l '^+++' * | head -1` if [ x$PATCH = x ]; then ls -la echo "Unable to find a patch" rm -rf $TMPDIR exit 1 fi less $PATCH echo -n "continue with patch? (y/n) " read ans if [ $ans != y ]; then echo aborting rm -rf $TMPDIR exit 1 fi echo -n "patch options? [$PATCH_OPTS] " read ans if [ x$ans != x ]; then PATCH_OPTS=$ans fi popd cat $TMPDIR/$PATCH | patch $PATCH_OPTS rm -rf $TMPDIR