#!/bin/sh # # 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 # # # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "%Z%%M% %I% %E% SMI" setvar TOOLDIR = ""${SRC}/cmd/sgs/tools/"" # # remove the temporary files # rm -f CATA_MSG_INTL_LIST CATA_MSG_ORIG_LIST rm -f MSG_INTL_LIST MSG_ORIG_LIST while getopts "m:" Arg { match $Arg { with m nawk -f ${TOOLDIR}/catalog.awk $OPTARG with \? echo "usage: chkmsg -m msgfile source-files" ; exit 1 } } shift $(expr $OPTIND - 1) if test $Argc -eq 0 { echo "usage: chkmsg -m msgfile source-files" exit 1 } # # Sort the MSG_INTL() and MSG_ORIG() entries. Note, messages can come in _32 # and _64 flavors - if so strip the suffix and uniquify the output. # if test -s CATA_MSG_INTL_LIST { sed -e "s/_32$//" -e "s/_64$//" CATA_MSG_INTL_LIST | sort | uniq > _TMP mv _TMP CATA_MSG_INTL_LIST } if test -s CATA_MSG_ORIG_LIST { sed -e "s/_32$//" -e "s/_64$//" CATA_MSG_ORIG_LIST | sort | uniq > _TMP mv _TMP CATA_MSG_ORIG_LIST } # # Generate the lists for the source files and sort them # nawk -f ${TOOLDIR}/getmessage.awk $ifsjoin(ARGV) if test -s MSG_INTL_LIST { sed -e "s/_32$//" -e "s/_64$//" MSG_INTL_LIST | sort | uniq > _TMP mv _TMP MSG_INTL_LIST } if test -s MSG_ORIG_LIST { sed -e "s/_32$//" -e "s/_64$//" MSG_ORIG_LIST | sort | uniq > _TMP mv _TMP MSG_ORIG_LIST } # # Start checking # setvar Error = '0' # # Check MESG_INTL message # comm -23 CATA_MSG_INTL_LIST MSG_INTL_LIST > _TMP 2> /dev/null if test -s _TMP { echo echo "messages exist between _START_ and _END_ but do not use MSG_INTL()" cat _TMP | sed "s/^/ /" setvar Error = '1' } rm -f _TMP comm -13 CATA_MSG_INTL_LIST MSG_INTL_LIST > _TMP 2> /dev/null if test -s _TMP { echo echo "use of MSG_INTL() but messages do not exist between _START_ and _END_" cat _TMP | sed "s/^/ /" setvar Error = '1' } rm -f _TMP # # Check MESG_ORIG message # comm -23 CATA_MSG_ORIG_LIST MSG_ORIG_LIST > _TMP 2> /dev/null if test -s _TMP { echo echo "messages exist after _END_ but do not use MSG_ORIG()" cat _TMP | sed "s/^/ /" setvar Error = '1' } rm -f _TMP comm -13 CATA_MSG_ORIG_LIST MSG_ORIG_LIST > _TMP 2> /dev/null if test -s _TMP { echo echo "use of MSG_ORIG() but messages do not exist after _END_" cat _TMP | sed "s/^/ /" setvar Error = '1' } rm -f _TMP # # remove the temporary files # rm -f CATA_MSG_INTL_LIST CATA_MSG_ORIG_LIST rm -f MSG_INTL_LIST MSG_ORIG_LIST exit $Error