]> scripts.mit.edu Git - wizard.git/blobdiff - wizard/app/mediawiki.py
Convert ad hoc shell calls to singleton instance; fix upgrade bug.
[wizard.git] / wizard / app / mediawiki.py
index b676b9fac457069b973b5b5c3e22457b3270d185..c6ac8ae3f419448ccebd4744426ba2f65c98380c 100644 (file)
@@ -71,11 +71,10 @@ class Application(app.Application):
                 raise app.RecoverableInstallFailure(error_messages)
         os.rename('config/LocalSettings.php', 'LocalSettings.php')
     def upgrade(self, d, version, options):
-        sh = shell.Shell()
         if not os.path.isfile("AdminSettings.php"):
-            sh.call("git", "checkout", "-q", "mediawiki-" + str(version), "--", "AdminSettings.php")
+            shell.call("git", "checkout", "-q", "mediawiki-" + str(version), "--", "AdminSettings.php")
         try:
-            result = sh.eval("php", "maintenance/update.php", "--quick", log=True)
+            result = shell.eval("php", "maintenance/update.php", "--quick", log=True)
         except shell.CallError as e:
             raise app.UpgradeFailure("Update script returned non-zero exit code\nSTDOUT: %s\nSTDERR: %s" % (e.stdout, e.stderr))
         results = result.rstrip().split()
@@ -87,6 +86,14 @@ class Application(app.Application):
         app.restore_database(backup_dir, deployment)
     def remove(self, deployment, options):
         app.remove_database(deployment)
+    def researchFilter(self, filename, added, deleted):
+        if filename == "LocalSettings.php":
+            return added == deleted == 10 or added == deleted == 9
+        elif filename == "AdminSettings.php":
+            return added == 0 and deleted == 20
+        elif filename == "config/index.php" or filename == "config/index.php5":
+            return added == 0
+        return False
 
 Application.resolutions = {
 'LocalSettings.php': [