summaryrefslogtreecommitdiff
path: root/usr/src/cmd/cmd-crypto/scripts/r.kmfconf
blob: 8c35957f76da2364276b5a268bca5ccdb902fada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#
# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# ident	"%Z%%M%	%I%	%E% SMI"
#
# Removal class action script for "kmfconf" class files.
#
# This script removes entries belonging to the package from the 
# /etc/crypto/kmf.conf file.
#

pkg_start="# Start $PKGINST"
pkg_end="# End $PKGINST"
tmpfile=/tmp/$$kmfconf
error=no

while read dest
do
	# For multiple input files; exit if error occurred in preious
	# input file.	
	if [ "$error" = yes ]
	then
		echo "$0: failed to update $lastdest for $PKGINST."
		exit 2
	fi
	lastdest=$dest

	# Strip all entries belonging to this package
	start=0
	end=0
	egrep -s "$pkg_start" $dest && start=1
	egrep -s "$pkg_end" $dest && end=1

	if [ $start -ne $end ] ; then
		echo "$0: missing Start or End delimiters for $PKGINST in \
		    $dest."
		echo "$0: $dest may be corrupted and was not updated."
		error=yes
		continue
	fi

	if [ $start -eq 1 ]
    	then
		sed -e "/$pkg_start/,/$pkg_end/d" $dest > $tmpfile || error=yes
		if [ "$error" = no ]
                then 
			mv $tmpfile $dest || error=yes
		fi
		rm -f $tmpfile
	else
		echo "$0: WARNING - no entries found in $dest for $PKGINST."
		exit 0
	fi
done

if [ "$error" = yes ]
then
	echo "$0: ERROR - failed to update $lastdest for $PKGINST."
	exit 2
fi
exit 0