#!/bin/sh
# $Id: check_lang.sh,v 2.2 2004/06/29 08:20:47 nijel Exp $
##
# Shell script to check that all language files are syncronized
# Catches duplicate/missing strings
#
# Robin Johnson <robbat2@users.sourceforge.net>
# August 9, 2002
##
MASTER="english-iso-8859-1.inc.php"
TMPDIR="tmp-check"
FILEPAT="*.inc.php"
STRINGMATCH='^[[:space:]]*\$[[:alnum:]_]+[[:blank:]]+='
IGNOREMATCH='strEncto|strKanjiEncodConvert|strXkana|allow_recoding'
if [ "`which diffstat`" = "" ] ; then
echo 'You need diffstat to use this!'
exit 1
fi
rm -rf $TMPDIR
mkdir -p $TMPDIR
# Build the list of variables in each file
echo "Building data"
for f in $FILEPAT;
do
awk "/$STRINGMATCH/ && ! /$IGNOREMATCH/ { print \$1 }" $f | sort > $TMPDIR/$f
done
# Build the diff files used for checking
# And if there are no differences, delete the empty files
echo "Comparing data"
for f in $FILEPAT;
do
if [ ! $MASTER = $f ]; then
if diff -u $TMPDIR/$MASTER $TMPDIR/$f >$TMPDIR/$f.diff ; then
rm -f $TMPDIR/$f.diff $TMPDIR/$f
fi
fi
done
# Cleanup
rm -f $TMPDIR/$MASTER
# Build the nice difference table
echo "Differences"
diffstat -f 0 $TMPDIR/*.diff >$TMPDIR/diffstat 2>/dev/null
echo "Dupe Miss Filename"
head -n -1 $TMPDIR/diffstat | \
while read filename sep change add plus sub minus edits exclaim;
do
echo "$add $sub $filename";
done
echo
echo "Dupe = Duplicate Variables"
echo "Miss = Missing Variables"
echo "For exact problem listings, look in the $TMPDIR/ directory"
echo "Please remember to remove '$TMPDIR/' once you are done"