# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident	"@(#)137137_prebackout.sh	1.1	10/02/25 SMI"
#
# Provide fixed definitions on patchadd execution.

### BEGIN: overlay 137137-09/prebackout
if [ "${PatchNum}" = "137137-09" -a `/usr/bin/basename $0` = "prebackout" ] ; then
prebackout()
{
PATH="/usr/bin:/usr/sbin:${PATH}"; export PATH
PKGCOND=/usr/bin/pkgcond

check_for_zfs_root()
{
   ROOTFSTYPE=`df -n $ROOTDIR | awk '{print $NF}'`
   if [ "$ROOTFSTYPE" = "zfs" ]; then
      print "You cannot backout this patch on zfs root."
      print "As this patch delivers zfs root support"
      exit 1
   fi
   return 0
}

ExecuteALLCmds()
{
   check_for_zfs_root
   return 0
}

determine_pkgcond () {

   if $PKGCOND  is_whole_root_nonglobal_zone > /dev/null 2>&1 ; then
      # Execute non-global whole root zone commands.
      return 0
   fi

   if $PKGCOND  is_nonglobal_zone > /dev/null 2>&1 ; then
      # Execute non-global zone commands. Should be no action here
      return 0
   fi

   if $PKGCOND is_netinstall_image > /dev/null 2>&1 ; then
      # Execute commands applicable to patching the mini-root.
      # There are usually no actions to take here since your patching
      # the mini-root on an install server.
      return 0
   fi

   if $PKGCOND is_mounted_miniroot > /dev/null 2>&1 ; then
      # Execute commands specific to the mini-root
      return 0
   fi

   if $PKGCOND is_diskless_client > /dev/null 2>&1 ; then
      # Execute commands specific to diskless client
      return 0
   fi
   if $PKGCOND is_alternative_root > /dev/null 2>&1 ; then
      # Execute commands specific to an alternate root
      ExecuteALLCmds
      return 0
   fi

   if $PKGCOND is_global_zone > /dev/null 2>&1 ; then
      # In a global zone and system is mounted on /.
      # Execute all commands.
      ExecuteALLCmds
      return 0
   fi
   return 1
}

#as we already require patches that require 119254-51 we already have pkgcond
determine_pkgcond || exit 1
}
fi
### END: overlay 137137-09/prebackout
