Home | History | Annotate | Download | only in SUNWdcar
      1 #! /bin/sh
      2 #
      3 # CDDL HEADER START
      4 #
      5 # The contents of this file are subject to the terms of the
      6 # Common Development and Distribution License (the "License").
      7 # You may not use this file except in compliance with the License.
      8 #
      9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10 # or http://www.opensolaris.org/os/licensing.
     11 # See the License for the specific language governing permissions
     12 # and limitations under the License.
     13 #
     14 # When distributing Covered Code, include this CDDL HEADER in each
     15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16 # If applicable, add the following below this CDDL HEADER, with the
     17 # fields enclosed by brackets "[]" replaced with your own identifying
     18 # information: Portions Copyright [yyyy] [name of copyright owner]
     19 #
     20 # CDDL HEADER END
     21 #
     22 
     23 #
     24 # Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
     25 # Use is subject to license terms.
     26 #
     27 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     28 #
     29 #
     30 # Preremove script for SUNWdcar.
     31 #
     32 # This script removes the hardware provider section for the dca
     33 # driver from /etc/crypto/kcf.conf
     34 #
     35 DRV=dca
     36 
     37 NAMEMAJOR="${BASEDIR}/etc/name_to_major"
     38 
     39 #
     40 # Determine if we are on an alternate BASEDIR
     41 #
     42 if [ "${BASEDIR:=/}" = "/" ]
     43 then
     44         REM_DRV="/usr/sbin/rem_drv"
     45 else
     46         REM_DRV="/usr/sbin/rem_drv -b ${BASEDIR}"
     47 fi
     48 
     49 #
     50 # Remove the driver, but only if this has not already been done.
     51 #
     52 grep -w "${DRV}" ${NAMEMAJOR} > /dev/null 2>&1
     53 if [ $? -eq 0 ]; then
     54     ${REM_DRV} ${DRV} || exit 1
     55 fi
     56 
     57 pkg_start="# Start $PKGINST"
     58 pkg_end="# End $PKGINST"
     59 kcfconf=${BASEDIR}/etc/crypto/kcf.conf
     60 tmpfile=/tmp/$$kcfconf
     61 error=no
     62 
     63 #
     64 # If /etc/crypto/kcf.conf doesn't exist, bail immediately
     65 #
     66 if [ ! -f "$kcfconf" ]
     67 then
     68 	echo "$0: ERROR - $kcfconf doesn't exist"
     69 	exit 2
     70 fi
     71 
     72 #
     73 # Strip all entries belonging to this package
     74 #
     75 start=0
     76 end=0
     77 egrep -s "$pkg_start" $kcfconf && start=1
     78 egrep -s "$pkg_end" $kcfconf && end=1
     79 
     80 if [ $start -ne $end ] ; then
     81 	echo "$0: missing Start or End delimiters for $PKGINST in $kcfconf."
     82 	echo "$0: $kcfconf may be corrupted and was not updated."
     83 	error=yes
     84 	exit 2
     85 fi
     86 
     87 if [ $start -eq 1 ]
     88 then
     89 	# To preserve the gid
     90 	cp -p $kcfconf $tmpfile
     91 	sed -e "/$pkg_start/,/$pkg_end/d" $kcfconf > $tmpfile || error=yes
     92 	if [ "$error" = no ]
     93 	then 
     94 		mv $tmpfile $kcfconf || error=yes
     95 	fi
     96 	rm -f $tmpfile
     97 else
     98 	echo "$0: WARNING - no entries to be removed from $kcfconf" 
     99 	exit 0
    100 fi
    101 
    102 if [ "$error" = yes ]
    103 then
    104 	echo "$0: ERROR - failed to update $kcfconf."
    105 	exit 2
    106 fi
    107 exit 0
    108