Merge "maintenance: Document secondary purpose of --server"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Thu, 12 Apr 2018 18:56:42 +0000 (18:56 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 12 Apr 2018 18:56:42 +0000 (18:56 +0000)
1  2 
maintenance/Maintenance.php

@@@ -25,7 -25,6 +25,7 @@@
  require_once __DIR__ . '/../includes/PHPVersionCheck.php';
  wfEntryPointCheck( 'cli' );
  
 +use MediaWiki\Shell\Shell;
  use Wikimedia\Rdbms\DBReplicationWaitError;
  
  /**
  
  // Define this so scripts can easily find doMaintenance.php
  define( 'RUN_MAINTENANCE_IF_MAIN', __DIR__ . '/doMaintenance.php' );
 +
 +/**
 + * @deprecated since 1.31
 + */
  define( 'DO_MAINTENANCE', RUN_MAINTENANCE_IF_MAIN ); // original name, harmless
  
  $maintClass = false;
@@@ -513,9 -508,7 +513,9 @@@ abstract class Maintenance 
                $this->addOption(
                        'memory-limit',
                        'Set a specific memory limit for the script, '
 -                              . '"max" for no limit or "default" to avoid changing it'
 +                              . '"max" for no limit or "default" to avoid changing it',
 +                      false,
 +                      true
                );
                $this->addOption( 'server', "The protocol and server name to use in URLs, e.g. " .
                        "http://en.wikipedia.org. This is sometimes necessary because " .
                        }
                        define( 'MW_DB', $bits[0] );
                        define( 'MW_PREFIX', $bits[1] );
+               } elseif ( isset( $this->mOptions['server'] ) ) {
+                       // Provide the option for site admins to detect and configure
+                       // multiple wikis based on server names. This offers --server
+                       // as alternative to --wiki.
+                       // See https://www.mediawiki.org/wiki/Manual:Wiki_family
+                       $_SERVER['SERVER_NAME'] = $this->mOptions['server'];
                }
  
                if ( !is_readable( $settingsFile ) ) {
                                "must exist and be readable in the source directory.\n" .
                                "Use --conf to specify it." );
                }
-               if ( isset( $this->mOptions['server'] ) ) {
-                       $_SERVER['SERVER_NAME'] = $this->mOptions['server'];
-               }
                $wgCommandLineMode = true;
  
                return $settingsFile;
                // something that can do the relevant syscalls. There are a few
                // options. Linux and Mac OS X both have "stty size" which does the
                // job directly.
 -              $retval = false;
 -              $size = wfShellExec( 'stty size', $retval );
 -              if ( $retval !== 0 ) {
 +              $result = Shell::command( 'stty', 'size' )
 +                      ->execute();
 +              if ( $result->getExitCode() !== 0 ) {
                        return $default;
                }
 -              if ( !preg_match( '/^(\d+) (\d+)$/', $size, $m ) ) {
 +              if ( !preg_match( '/^(\d+) (\d+)$/', $result->getStdout(), $m ) ) {
                        return $default;
                }
                return [ intval( $m[2] ), intval( $m[1] ) ];