]> git.saurik.com Git - wxWidgets.git/blame - build/buildbot/tools/validate.sh
fix typo in warning message
[wxWidgets.git] / build / buildbot / tools / validate.sh
CommitLineData
c005fb28
MW
1#!/bin/sh
2#############################################################################
3# Name: validate
4# Purpose: Reports errors in wxWidgets buildbot configuration files
5# Author: Mike Wetherell
6# RCS-ID: $Id$
7# Copyright: (c) 2007 Mike Wetherell
8# Licence: wxWidgets licence
9#############################################################################
10
11if [ $# -eq 0 -o ! -f "$1" ]; then
12 echo "Usage: $0 FILE..."
13 echo "Reports errors in wxWidgets buildbot configuration files"
14 exit 1
15fi >&2
16
17DIR="`dirname $0`"
18WORKDIR="${TMPDIR:-/tmp}/wx.$$"
19mkdir "$WORKDIR" || exit
20trap 'rm -rf "$WORKDIR"' EXIT
21WORKPAT=`echo "$WORKDIR" | sed 's|[^A-Za-z0-9/]|.|g'`
22
23# Change the names of the temporary files in an error message to something
24# to something more informative
25#
26error()
27{
28 if [ -n "$1" ]; then
29 echo "$1" |
30 sed "s|file ${WORKPAT}|${WORKPAT}|g;\
31 s|${WORKPAT}/XSLT|generated XSLT (from $NAME)|g;\
32 s|${WORKPAT}/prep|$NAME (preprocessed)|g"
33 fi
34}
35
36# This is pretty ugly, sorry. It tries not to print the same error more than
37# once, and it tries to send success message to stdout and errors to stderr.
38# It still doesn't return a meaningful exit code.
39#
40while [ $# -gt 0 ]
41do
42 INPUT="$1"
43 NAME="`echo \"$INPUT\" | sed 's/[|\]/\\\&/g'`"
44 XSLT="$WORKDIR/XSLT"
45 OUTPUT="$WORKDIR/prep"
46
47 if STDERR=`xsltproc --xinclude -o "$XSLT" $DIR/embedded.xsl "$INPUT" 2>&1`
48 then
49 STDERR=`xsltproc --xinclude -o "$OUTPUT" "$XSLT" "$INPUT" 2>&1` \
50 && OK=true || OK=false
51 error "$STDERR" >&2
52
53 if $OK; then
54 STDERR=`xmllint --noout --schema $DIR/bot.xsd "$OUTPUT" 2>&1` \
55 && OUT=1 || OUT=2
56 error "$STDERR" >&$OUT
57 fi
58 else
59 error "$STDERR" >&2
60 fi
61
62 rm -f "$XSLT" "$OUTPUT"
63
64 shift
65done