]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - scripts/checkschema.php
Merge remote-tracking branch 'upstream/master'
[quix0rs-gnu-social.git] / scripts / checkschema.php
index 73fd74302c6ad1230794f5b4ba12e897cb608298..3b3ccca7c9e3facf9563f4f09201469b543facc0 100755 (executable)
@@ -2,7 +2,7 @@
 <?php
 /*
  * StatusNet - a distributed open-source microblogging tool
- * Copyright (C) 2008, 2009, StatusNet, Inc.
+ * Copyright (C) 2008-2011 StatusNet, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
 
 define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
 
+$shortoptions = 'x::';
+$longoptions = array('extensions=');
+
 $helptext = <<<END_OF_CHECKSCHEMA_HELP
+php checkschema.php [options]
 Gives plugins a chance to update the database schema.
 
+    -x --extensions=     Comma-separated list of plugins to load before checking
+
+
 END_OF_CHECKSCHEMA_HELP;
 
-require_once INSTALLDIR.'/scripts/commandline.inc';
+require_once INSTALLDIR.'/scripts/commandline.inc.php';
 
 function tableDefs()
 {
@@ -41,4 +48,18 @@ foreach (tableDefs() as $table => $def) {
 }
 $schemaUpdater->checkSchema();
 
+if (have_option('x', 'extensions')) {
+    $ext = trim(get_option_value('x', 'extensions'));
+    $exts = explode(',', $ext);
+    foreach ($exts as $plugin) {
+        try {
+            addPlugin($plugin);
+        } catch (Exception $e) {
+            print $e->getMessage()."\n";
+            exit(1);
+        }
+    }
+}
+
+Event::handle('BeforePluginCheckSchema');
 Event::handle('CheckSchema');