checkxml.sh 3.48 KiB
#!/bin/sh
#
# Validate XML and HTML files using xmllint
# Returns nonzero on failure
#
# Note that the news.xml and initialNews*.xml files are really HTML
#
# zzz 2011-03
# public domain
#
cd `dirname $0`/../..
XMLFILES="\
./apps/addressbook/build.xml \
./apps/desktopgui/build.xml \
./apps/i2psnark/java/build.xml \
./apps/i2psnark/jetty-i2psnark.xml \
./apps/i2psnark/web.xml \
./apps/i2ptunnel/java/build.xml \
./apps/i2ptunnel/jsp/web.xml \
./apps/jetty/build.xml \
./apps/ministreaming/java/build.xml \
./apps/routerconsole/java/build.xml \
./apps/routerconsole/jsp/web.xml \
./apps/sam/java/build.xml \
./apps/streaming/java/build.xml \
./apps/susidns/src/build.xml \
./apps/susidns/src/WEB-INF/web-template.xml \
./apps/susimail/build.xml \
./apps/susimail/src/WEB-INF/web.xml \
./apps/systray/java/build.xml \
./build.xml \
./core/java/build.xml \
./core/java/nbproject/project.xml \
./installer/i2pinstaller.xml \
./installer/i2pstandalone.xml \
./installer/install.xml \
./installer/resources/eepsite/jetty-ssl.xml
./installer/resources/eepsite/contexts/cgi-context.xml
./installer/resources/eepsite/contexts/base-context.xml
./installer/resources/eepsite/jetty-rewrite.xml
./installer/resources/eepsite/etc/webdefault.xml
./installer/resources/eepsite/jetty-jmx.xml
./installer/resources/eepsite/jetty.xml
./installer/resources/shortcutSpec.xml \
./router/java/build.xml \
./Slackware/i2p/build.xml"
HTMLFILES="\
./apps/routerconsole/resources-news/docs/initialNews/*.xml \
./apps/desktopgui/src/net/i2p/desktopgui/package.html \
./apps/ministreaming/java/src/net/i2p/client/streaming/package.html \
./apps/routerconsole/resources/docs/readme*.html \
./apps/susimail/src/index.html \
./core/java/src/net/i2p/client/datagram/package.html \
./core/java/src/net/i2p/client/naming/package.html \
./core/java/src/net/i2p/client/package.html \
./core/java/src/net/i2p/crypto/package.html \
./core/java/src/net/i2p/data/i2cp/package.html \
./core/java/src/net/i2p/data/package.html \
./core/java/src/net/i2p/internal/package.html \
./core/java/src/net/i2p/package.html \
./core/java/src/net/i2p/stat/package.html \
./core/java/src/net/i2p/time/package.html \
./core/java/src/net/i2p/util/package.html \
./installer/resources/eepsite/docroot/help/index*.html \
./installer/resources/eepsite/docroot/help/pagetemplate.html \
./installer/resources/eepsite/docroot/index.html \
./installer/resources/small/toolbar.html \
./installer/resources/startconsole.html \
./router/java/src/net/i2p/data/i2np/package.html \
./router/java/src/net/i2p/router/package.html \
./router/java/src/net/i2p/router/peermanager/package.html \
./router/java/src/net/i2p/router/startup/package.html \
./router/java/src/net/i2p/router/transport/ntcp/package.html \
./router/java/src/net/i2p/router/transport/package.html \
./router/java/src/net/i2p/router/transport/udp/package.html \
./router/java/src/net/i2p/router/util/package.html"
echo 'Checking XML files....................'
for i in $XMLFILES
do
#echo "Checking $i ..."
xmllint --noout $i
if [ $? -ne 0 ]
then
echo "********* FAILED CHECK FOR $i *************"
FAIL=1
fi
done
echo 'Checking HTML files....................'
for i in $HTMLFILES
do
#echo "Checking $i ..."
xmllint --html --noout $i
# FIXME html mode never exits with an error code
# ... but it does output errors
if [ $? -ne 0 ]
then
echo "********* FAILED CHECK FOR $i *************"
FAIL=1
fi
done
if [ "$FAIL" != "" ]
then
echo "******** At least one file failed check *********"
else
echo "All files passed"
fi
exit $FAIL