1 #!/usr/bin/ksh -p 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 2008 Sun Microsystems, Inc. All rights reserved. 25 # Use is subject to license terms. 26 # 27 # ident "%Z%%M% %I% %E% SMI" 28 # 29 30 LDELIM="\n--------------------------------------------------------------------\n\n" 31 DIGEST=/usr/bin/digest 32 dest=copyright 33 34 # 35 # Destination file should not be under version control 36 # 37 if [ -f SCCS/s.${dest} ]; then 38 echo "${dest} should not be under SCCS control">&2 39 exit 1 40 fi 41 42 # 43 # We must have a list of files to start with 44 # 45 if [ $# -eq 0 ]; then 46 echo "${dest} may not be empty">&2 47 exit 2 48 fi 49 50 echo "building `basename ${PWD}` ${dest} file from $*" 51 rm -f ${dest} 52 typeset -A encountered 53 delimiter="" 54 for f; do 55 if [ ! -s "${f}" ]; then 56 echo "${f} should not be empty">&2 57 exit 3 58 fi 59 hash=`${DIGEST} -a sha1 < $f` 60 if [ -z "${encountered[${hash}]}" ]; then 61 encountered[${hash}]="yes" 62 ( print "${delimiter}\c"; cat ${f}; ) >> ${dest} 63 delimiter="${LDELIM}" 64 fi 65 done 66 67 exit 0 68