#!/bin/sh

# Needed commands
AWK=/usr/bin/awk
CAT=/usr/bin/cat
CHMOD=/usr/bin/chmod
COMPRESS=/usr/bin/compress
CP=/usr/bin/cp
GREP=/usr/bin/grep
MKDIR=/usr/bin/mkdir
MV=/usr/bin/mv
PKGINFO=/usr/bin/pkginfo
RM=/usr/bin/rm
SED=/usr/bin/sed
TAR=/usr/bin/tar
UNCOMPRESS=/usr/bin/uncompress


# Set needed variables
PATCHNO=106899-01
PKGDB=/var/sadm/pkg
PKGNAME=SUNWlagn
DB_DIR=/var/opt/SUNWlagn
DB_TARFILE=db.tar
DB_TARFILE_Z=db.tar.Z

# Get the undo flag 
PATCH_NO_UNDO=`${CAT} $PKGDB/$PKGNAME/pkginfo | ${GREP} PATCH_NO_UNDO | ${AWK} -F"=" '{print $2}'`

#
# These things are for patch backout do them if the PATCH_NO_UNDO = false
#
if [ "$PATCH_NO_UNDO" = "false" ]; then

    #
    # Get the package save db 
    #
    PATCH_UNDO_ARCHIVE=`${CAT} $PKGDB/$PKGNAME/pkginfo | ${GREP} PATCH_UNDO_ARCHIVE | ${AWK} -F"=" '{print $2}'`
    if [ "$PATCH_UNDO_ARCHIVE" = "none" ]; then
        PKGSAVEDB=$PKGDB/$PKGNAME/save/$PATCHNO
    else
        PKGSAVEDB=$PATCH_UNDO_ARCHIVE/$PATCHNO/$PKGNAME
    fi

    #
    # Store the old database
    #
    echo "Storing old data base ..."
    DB_TMP=/tmp/DB$$
    ${MKDIR} -p $DB_TMP
    (cd $DB_DIR; ${TAR} -cf $DB_TMP/$DB_TARFILE ./db ./log)
    ${COMPRESS} $DB_TMP/$DB_TARFILE
    ${CP} $DB_TMP/$DB_TARFILE_Z $PKGSAVEDB
    ${RM} -fr $DB_TMP

fi
