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 (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 2006 Sun Microsystems, Inc. All rights reserved. 25# Use is subject to license terms. 26# 27# ident "%Z%%M% %I% %E% SMI" 28 29TOOLDIR="${SRC}/cmd/sgs/tools/" 30 31# 32# remove the temporary files 33# 34rm -f CATA_MSG_INTL_LIST CATA_MSG_ORIG_LIST 35rm -f MSG_INTL_LIST MSG_ORIG_LIST 36 37while getopts "m:" Arg 38do 39 case $Arg in 40 m) nawk -f ${TOOLDIR}/catalog.awk $OPTARG ;; 41 \?) echo "usage: chkmsg -m msgfile source-files" ; exit 1 ;; 42 esac 43done 44shift `expr $OPTIND - 1` 45 46if [ $# -eq 0 ]; then 47 echo "usage: chkmsg -m msgfile source-files" 48 exit 1 49fi 50 51# 52# Sort the MSG_INTL() and MSG_ORIG() entries. Note, messages can come in _32 53# and _64 flavors - if so strip the suffix and uniquify the output. 54# 55if [ -s CATA_MSG_INTL_LIST ] ; then 56 sed -e "s/_32$//" -e "s/_64$//" CATA_MSG_INTL_LIST | sort | uniq > _TMP 57 mv _TMP CATA_MSG_INTL_LIST 58fi 59if [ -s CATA_MSG_ORIG_LIST ] ; then 60 sed -e "s/_32$//" -e "s/_64$//" CATA_MSG_ORIG_LIST | sort | uniq > _TMP 61 mv _TMP CATA_MSG_ORIG_LIST 62fi 63 64# 65# Generate the lists for the source files and sort them 66# 67nawk -f ${TOOLDIR}/getmessage.awk $* 68 69if [ -s MSG_INTL_LIST ] ; then 70 sed -e "s/_32$//" -e "s/_64$//" MSG_INTL_LIST | sort | uniq > _TMP 71 mv _TMP MSG_INTL_LIST 72fi 73if [ -s MSG_ORIG_LIST ] ; then 74 sed -e "s/_32$//" -e "s/_64$//" MSG_ORIG_LIST | sort | uniq > _TMP 75 mv _TMP MSG_ORIG_LIST 76fi 77 78# 79# Start checking 80# 81Error=0 82 83# 84# Check MESG_INTL message 85# 86comm -23 CATA_MSG_INTL_LIST MSG_INTL_LIST > _TMP 2> /dev/null 87if [ -s _TMP ]; then 88 echo 89 echo "messages exist between _START_ and _END_ but do not use MSG_INTL()" 90 cat _TMP | sed "s/^/ /" 91 Error=1 92fi 93rm -f _TMP 94 95comm -13 CATA_MSG_INTL_LIST MSG_INTL_LIST > _TMP 2> /dev/null 96if [ -s _TMP ]; then 97 echo 98 echo "use of MSG_INTL() but messages do not exist between _START_ and _END_" 99 cat _TMP | sed "s/^/ /" 100 Error=1 101fi 102rm -f _TMP 103 104# 105# Check MESG_ORIG message 106# 107comm -23 CATA_MSG_ORIG_LIST MSG_ORIG_LIST > _TMP 2> /dev/null 108if [ -s _TMP ]; then 109 echo 110 echo "messages exist after _END_ but do not use MSG_ORIG()" 111 cat _TMP | sed "s/^/ /" 112 Error=1 113fi 114rm -f _TMP 115 116comm -13 CATA_MSG_ORIG_LIST MSG_ORIG_LIST > _TMP 2> /dev/null 117if [ -s _TMP ]; then 118 echo 119 echo "use of MSG_ORIG() but messages do not exist after _END_" 120 cat _TMP | sed "s/^/ /" 121 Error=1 122fi 123rm -f _TMP 124 125# 126# remove the temporary files 127# 128rm -f CATA_MSG_INTL_LIST CATA_MSG_ORIG_LIST 129rm -f MSG_INTL_LIST MSG_ORIG_LIST 130 131exit $Error 132