Merge "Exclude redirects from Special:Fewestrevisions"
[lhc/web/wiklou.git] / maintenance / update.php
index b6c7ae4..d84ec5c 100755 (executable)
@@ -28,6 +28,7 @@
 require_once __DIR__ . '/Maintenance.php';
 
 use Wikimedia\Rdbms\IMaintainableDatabase;
+use Wikimedia\Rdbms\DatabaseSqlite;
 
 /**
  * Maintenance script to run database schema updates.
@@ -123,6 +124,10 @@ class UpdateMediaWiki extends Maintenance {
 
                $this->output( "MediaWiki {$wgVersion} Updater\n\n" );
 
+               foreach ( SpecialVersion::getSoftwareInformation() as $name => $version ) {
+                       $this->output( "{$name}: {$version}\n" );
+               }
+
                wfWaitForSlaves();
 
                if ( !$this->hasOption( 'skip-compat-checks' ) ) {
@@ -156,7 +161,8 @@ class UpdateMediaWiki extends Maintenance {
                        $this->fatalError( $text );
                }
 
-               $this->output( "Going to run database updates for " . wfWikiID() . "\n" );
+               $dbDomain = WikiMap::getCurrentWikiDbDomain()->getId();
+               $this->output( "Going to run database updates for $dbDomain\n" );
                if ( $db->getType() === 'sqlite' ) {
                        /** @var IMaintainableDatabase|DatabaseSqlite $db */
                        $this->output( "Using SQLite file: '{$db->getDbFilePath()}'\n" );
@@ -243,18 +249,27 @@ class UpdateMediaWiki extends Maintenance {
                ];
        }
 
+       /**
+        * @throws FatalError
+        * @throws MWException
+        * @suppress PhanPluginDuplicateConditionalNullCoalescing
+        */
        public function validateParamsAndArgs() {
                // Allow extensions to add additional params.
                $params = [];
                Hooks::run( 'MaintenanceUpdateAddParams', [ &$params ] );
+
+               // This executes before the PHP version check, so don't use null coalesce (??).
+               // Keeping this compatible with older PHP versions lets us reach the code that
+               // displays a more helpful error.
                foreach ( $params as $name => $param ) {
                        $this->addOption(
                                $name,
                                $param['desc'],
-                               $param['require'] ?? false,
-                               $param['withArg'] ?? false,
-                               $param['shortName'] ?? false,
-                               $param['multiOccurrence'] ?? false
+                               isset( $param['require'] ) ? $param['require'] : false,
+                               isset( $param['withArg'] ) ? $param['withArg'] : false,
+                               isset( $param['shortName'] ) ? $param['shortName'] : false,
+                               isset( $param['multiOccurrence'] ) ? $param['multiOccurrence'] : false
                        );
                }