Home | History | Annotate | Download | only in common_files
      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, Version 1.0 only
      7 # (the "License").  You may not use this file except in compliance
      8 # with the License.
      9 #
     10 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     11 # or http://www.opensolaris.org/os/licensing.
     12 # See the License for the specific language governing permissions
     13 # and limitations under the License.
     14 #
     15 # When distributing Covered Code, include this CDDL HEADER in each
     16 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     17 # If applicable, add the following below this CDDL HEADER, with the
     18 # fields enclosed by brackets "[]" replaced with your own identifying
     19 # information: Portions Copyright [yyyy] [name of copyright owner]
     20 #
     21 # CDDL HEADER END
     22 #
     23 #
     24 #pragma ident	"%Z%%M%	%I%	%E% SMI"
     25 #
     26 # Copyright (c) 1999 by Sun Microsystems, Inc.
     27 #
     28 
     29 PATH="/usr/bin:/usr/sbin:${PATH}"
     30 export PATH
     31 
     32 trap "rm -f /tmp/$$;exit" 0 1 2 3 13 15
     33 
     34 while read src dest
     35 do
     36 	if [ ! -f $dest ] ; then
     37 		cp $src $dest
     38 	else
     39 		# find each line in the existing file whose
     40 		# first field does not exist in the new file
     41 		rm -f /tmp/$$
     42 		cat $dest |
     43 	       (while read e1 e2
     44 		do
     45 			# skip comments
     46 			if [ `expr "$e1" : '^[ 	]*#'` = 1 ] ; then
     47 				continue;
     48 			fi
     49 			grep -w "$e1" $src >/dev/null 2>&1
     50 			if [ $? = 0 ] ; then
     51 				continue
     52 			else
     53 				echo "$e1 $e2" >> /tmp/$$
     54 			fi
     55 		done)
     56 		cp $src $dest
     57 		if [ -f /tmp/$$ ] ; then
     58 			cat /tmp/$$ >> $dest
     59 		fi
     60 		rm -f /tmp/$$
     61 	fi
     62 done
     63 
     64 exit 0
     65