X-Git-Url: https://scripts.mit.edu/gitweb/wizard.git/blobdiff_plain/60e5bece267b3f7ca52c0309ebfcaab23dc82c4a..9e26076dce6a76dd0def15a66061c681907c05a9:/wizard/app/mediawiki.py diff --git a/wizard/app/mediawiki.py b/wizard/app/mediawiki.py index cf9fa01..4e36c9c 100644 --- a/wizard/app/mediawiki.py +++ b/wizard/app/mediawiki.py @@ -1,6 +1,9 @@ import re import distutils.version import os +import lxml.cssselect +import lxml.etree +import StringIO from wizard import app, install, resolve, shell, util from wizard.app import php @@ -66,9 +69,14 @@ class Application(app.Application): 'SysopPass2': options.admin_password, } result = install.fetch(options, '/config/index.php', post=postdata) + result_etree = lxml.etree.parse(StringIO.StringIO(result), lxml.etree.HTMLParser()) + selector = lxml.cssselect.CSSSelector(".error") + error_messages = [e.text for e in selector(result_etree)] if options.verbose or options.debug: print result if result.find("Installation successful") == -1: - raise install.Failure() + if not error_messages: + raise install.Failure() + raise app.NonfatalFailure(error_messages) os.rename('config/LocalSettings.php', 'LocalSettings.php') def upgrade(self, d, version, options): sh = shell.Shell()