X-Git-Url: https://scripts.mit.edu/gitweb/wizard.git/blobdiff_plain/05d452073bdb008549a4a69ef47660a7e37115b7..52ea29609e89bf865ab7fc3df828648dde998f48:/wizard/app/mediawiki.py diff --git a/wizard/app/mediawiki.py b/wizard/app/mediawiki.py index e94abc2..1505fa1 100644 --- a/wizard/app/mediawiki.py +++ b/wizard/app/mediawiki.py @@ -1,12 +1,17 @@ import re import distutils.version import os +import lxml.cssselect +import lxml.etree +import StringIO +import logging from wizard import app, install, resolve, shell, util from wizard.app import php def make_filename_regex(var): - return 'LocalSettings.php', re.compile('^(\$' + app.expand_re(var) + r'''\s*=\s*)(.*)(;)''', re.M) + """See :ref:`versioning config ` for more information.""" + return 'LocalSettings.php', php.re_var(var) seed = util.dictmap(make_filename_regex, { 'WIZARD_IP': 'IP', # obsolete, remove after we're done @@ -21,61 +26,59 @@ seed = util.dictmap(make_filename_regex, { }) class Application(app.Application): - parametrized_files = ['LocalSettings.php', 'php.ini'] + database = "mysql" + parametrized_files = ['LocalSettings.php'] + php.parametrized_files deprecated_keys = set(['WIZARD_IP']) | php.deprecated_keys extractors = app.make_extractors(seed) extractors.update(php.extractors) substitutions = app.make_substitutions(seed) substitutions.update(php.substitutions) - install_schema = install.ArgSchema("mysql", "admin", "email", "title") + install_schema = install.ArgSchema("db", "admin", "email", "title") + def download(self, version): + series = ".".join(str(version).split(".")[:2]) + return "http://download.wikimedia.org/mediawiki/%s/mediawiki-%s.tar.gz" % (series, version) def checkConfig(self, deployment): - return os.path.isfile(os.path.join(deployment.location, "LocalSettings.php")) + return os.path.isfile("LocalSettings.php") def detectVersion(self, deployment): - contents = deployment.read("includes/DefaultSettings.php") - regex = make_filename_regex("wgVersion")[1] - match = regex.search(contents) - if not match: return None - return distutils.version.LooseVersion(match.group(2)[1:-1]) - def checkWeb(self, deployment, out=None): - page = deployment.fetch("/index.php?title=Main_Page") - if type(out) is list: - out.append(page) - return page.find("