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# Copyright (c) 1999 by Sun Microsystems, Inc. 25# All rights reserved. 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. 53# 54if [ -s CATA_MSG_INTL_LIST ] ; then 55 sort CATA_MSG_INTL_LIST | uniq > _TMP 56 mv _TMP CATA_MSG_INTL_LIST 57fi 58if [ -s CATA_MSG_ORIG_LIST ] ; then 59 sort CATA_MSG_ORIG_LIST | 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 sort MSG_INTL_LIST | uniq > _TMP 70 mv _TMP MSG_INTL_LIST 71fi 72if [ -s MSG_ORIG_LIST ] ; then 73 sort MSG_ORIG_LIST | 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