diff options
author | Gary Oberbrunner <garyo@oberbrunner.com> | 2013-05-04 16:28:50 -0400 |
---|---|---|
committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2013-05-04 16:28:50 -0400 |
commit | cc7ac69ca8331dd77fef8ac334bed0c1ad42e4a2 (patch) | |
tree | 9140cb365149a3397726b85feb8f73de851cf16e /bin/SConsDoc.py | |
parent | 8e70741f93305f5b28bd3f77954f615aa0fcf840 (diff) | |
download | scons-cc7ac69ca8331dd77fef8ac334bed0c1ad42e4a2.tar.gz |
New doc toolchain changes:
bin/SConsDoc.py: catch parse exceptions and improve error msgs
bin/docs-validate.py: allow testing individual files from cmd line
src/engine/SCons/Tool/zip.xml: fix text to validate against DTD
Diffstat (limited to 'bin/SConsDoc.py')
-rw-r--r-- | bin/SConsDoc.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/bin/SConsDoc.py b/bin/SConsDoc.py index 240a8c2b..c9d1e6e5 100644 --- a/bin/SConsDoc.py +++ b/bin/SConsDoc.py @@ -330,13 +330,18 @@ if not has_libxml2: def validateXml(self, fpath, xmlschema_context): # Use lxml xmlschema = etree.XMLSchema(xmlschema_context) - doc = etree.parse(fpath) + try: + doc = etree.parse(fpath) + except Exception, e: + print "ERROR: %s fails to parse:"%fpath + print e + return False doc.xinclude() try: xmlschema.assertValid(doc) except Exception, e: + print "ERROR: %s fails to validate:" % fpath print e - print "%s fails to validate" % fpath return False return True @@ -618,16 +623,20 @@ def validate_all_xml(dpaths, xsdfile=default_xsd): fpaths = [] for dp in dpaths: - for path, dirs, files in os.walk(dp): - for f in files: - if f.endswith('.xml'): - fp = os.path.join(path, f) - if isSConsXml(fp): - fpaths.append(fp) + if dp.endswith('.xml') and isSConsXml(dp): + path='.' + fpaths.append(dp) + else: + for path, dirs, files in os.walk(dp): + for f in files: + if f.endswith('.xml'): + fp = os.path.join(path, f) + if isSConsXml(fp): + fpaths.append(fp) fails = [] for idx, fp in enumerate(fpaths): - fpath = os.path.join(path, f) + fpath = os.path.join(path, fp) print "%.2f%s (%d/%d) %s" % (float(idx+1)*100.0/float(len(fpaths)), perc, idx+1, len(fpaths),fp) |