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