8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / cmd / cmd-crypto / scripts / i.kmfconf
blob52b06b088c45b92b39cbf69aad1719fa074022ef
2 # Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
3 # Use is subject to license terms.
5 # CDDL HEADER START
7 # The contents of this file are subject to the terms of the
8 # Common Development and Distribution License (the "License").
9 # You may not use this file except in compliance with the License.
11 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
12 # or http://www.opensolaris.org/os/licensing.
13 # See the License for the specific language governing permissions
14 # and limitations under the License.
16 # When distributing Covered Code, include this CDDL HEADER in each
17 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
18 # If applicable, add the following below this CDDL HEADER, with the
19 # fields enclosed by brackets "[]" replaced with your own identifying
20 # information: Portions Copyright [yyyy] [name of copyright owner]
22 # CDDL HEADER END
24 # ident "%Z%%M% %I%     %E% SMI"
26 # Class action script for "kmfconf" class files.
28 # This script appends the input file from the package to the 
29 # /etc/crypto/kmf.conf file.
31 # The syntax of the input file is
32 # keystore:modulepath=path[;option=option_str]
33
35 pkg_start="# Start $PKGINST"
36 pkg_end="# End $PKGINST"
37 tmpfile=/tmp/$$kmfconf
38 error=no
40 while read src dest
42         [ "$src" = /dev/null ] && continue
44         if [ -f "$dest" ]
45         then
46                 # For multiple input files; exit if error occurred in previous
47                 # input file.
48                 if [ "$error" = yes ]
49                 then
50                         echo "$0: failed to update $lastdest for $PKGINST."
51                         exit 2
52                 fi
53                 lastdest=$dest
55                 #
56                 # If the package has been already installed, remove old entries
57                 #
58                 start=0;
59                 end=0;
60                 egrep -s "$pkg_start" $dest && start=1
61                 egrep -s "$pkg_end" $dest && end=1
63                 if [ $start -ne $end ]
64                 then
65                         echo "$0: missing Start or End delimiters for \
66                             $PKGINST in $dest."
67                         echo "$0: $dest may be corrupted and was not updated."
68                         error=yes
69                         continue
70                 fi
72                 if [ $start -eq 1 ]
73                 then
74                         sed -e "/$pkg_start/,/$pkg_end/d" $dest > $tmpfile \
75                         || error=yes
76                 else
77                         cp $dest $tmpfile || error=yes
78                 fi
80                 #
81                 # Check the input file syntax (should at least contain
82                 # ":module_path=").  Then append the input entries with the
83                 #scc package delimiters.
84                 #
85                 line_count=`wc -l $src | awk '{ print $1}'`
86                 file_count=`grep ":modulepath=" $src | wc -l`   
87                 if [ $line_count -ne $file_count ]
88                 then
89                         echo "$0: Syntax Error - $src for $PKGINST."
90                         error=yes
91                         continue
92                 else
93                         echo "$pkg_start" >> $tmpfile || error=yes
94                         cat $src >> $tmpfile || error=yes
95                         echo "$pkg_end" >> $tmpfile || error=yes
96                 fi
97     
98                 # Install the updated config file and clean up the tmp file
99                 if [ "$error" = no ]
100                 then 
101                         mv $tmpfile $dest || error=yes
102                 fi
103                 rm -f $tmpfile          
104         else
105                 echo "$0: ERROR - $dest doesn't exist for $PKGINST."
106                 exit 2
107         fi
108 done
110 if [ "$error" = yes ]
111 then
112         echo "$0: ERROR - failed to update $lastdest for $PKGINST."
113         exit 2
116 exit 0