diff options
Diffstat (limited to 'maintenance/commandLine.inc')
-rw-r--r-- | maintenance/commandLine.inc | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/maintenance/commandLine.inc b/maintenance/commandLine.inc index f7bb53ff..a23bb6eb 100644 --- a/maintenance/commandLine.inc +++ b/maintenance/commandLine.inc @@ -1,7 +1,9 @@ <?php /** + * @file * @todo document - * @addtogroup Maintenance + * @ingroup Maintenance + * @defgroup Maintenance Maintenance */ $wgRequestTime = microtime(true); @@ -35,9 +37,12 @@ if ( !isset( $optionsWithArgs ) ) { } $optionsWithArgs[] = 'conf'; # For specifying the location of LocalSettings.php $optionsWithArgs[] = 'aconf'; # As above for AdminSettings.php +$optionsWithArgs[] = 'wiki'; # For specifying the wiki ID $self = array_shift( $argv ); -$IP = realpath( dirname( __FILE__ ) . '/..' ); +$IP = ( getenv('MW_INSTALL_PATH') !== false + ? getenv('MW_INSTALL_PATH') + : realpath( dirname( __FILE__ ) . '/..' ) ); #chdir( $IP ); require_once( "$IP/StartProfiler.php" ); @@ -61,7 +66,7 @@ for( $arg = reset( $argv ); $arg !== false; $arg = next( $argv ) ) { if ( in_array( $option, $optionsWithArgs ) ) { $param = next( $argv ); if ( $param === false ) { - echo "$arg needs an value after it\n"; + echo "$arg needs a value after it\n"; die( -1 ); } $options[$option] = $param; @@ -82,7 +87,7 @@ for( $arg = reset( $argv ); $arg !== false; $arg = next( $argv ) ) { if ( in_array( $option, $optionsWithArgs ) ) { $param = next( $argv ); if ( $param === false ) { - echo "$arg needs an value after it\n"; + echo "$arg needs a value after it\n"; die( -1 ); } $options[$option] = $param; @@ -109,7 +114,9 @@ if (!isset( $wgUseNormalUser ) ) { if ( file_exists( '/home/wikipedia/common/langlist' ) ) { $wgWikiFarm = true; - $cluster = trim( file_get_contents( '/etc/cluster' ) ); + #$cluster = trim( file_get_contents( '/etc/cluster' ) ); + $cluster = 'pmtpa'; + require_once( "$IP/includes/AutoLoader.php" ); require_once( "$IP/includes/SiteConfiguration.php" ); # Get $wgConf @@ -117,7 +124,11 @@ if ( file_exists( '/home/wikipedia/common/langlist' ) ) { if ( empty( $wgNoDBParam ) ) { # Check if we were passed a db name - $db = array_shift( $args ); + if ( isset( $options['wiki'] ) ) { + $db = $options['wiki']; + } else { + $db = array_shift( $args ); + } list( $site, $lang ) = $wgConf->siteFromDB( $db ); # If not, work out the language and site the old way @@ -150,6 +161,10 @@ if ( file_exists( '/home/wikipedia/common/langlist' ) ) { $DP = $IP; ini_set( 'include_path', ".:$IP:$IP/includes:$IP/languages:$IP/maintenance" ); + if ( $lang == 'test' && $site == 'wikipedia' ) { + define( 'TESTWIKI', 1 ); + } + #require_once( $IP.'/includes/ProfilerStub.php' ); require_once( $IP.'/includes/Defines.php' ); require_once( $IP.'/CommonSettings.php' ); @@ -169,6 +184,14 @@ if ( file_exists( '/home/wikipedia/common/langlist' ) ) { } else { $settingsFile = "$IP/LocalSettings.php"; } + if ( isset( $options['wiki'] ) ) { + $bits = explode( '-', $options['wiki'] ); + if ( count( $bits ) == 1 ) { + $bits[] = ''; + } + define( 'MW_DB', $bits[0] ); + define( 'MW_PREFIX', $bits[1] ); + } if ( ! is_readable( $settingsFile ) ) { print "A copy of your installation's LocalSettings.php\n" . @@ -177,6 +200,7 @@ if ( file_exists( '/home/wikipedia/common/langlist' ) ) { } $wgCommandLineMode = true; $DP = $IP; + require_once( "$IP/includes/AutoLoader.php" ); #require_once( $IP.'/includes/ProfilerStub.php' ); require_once( $IP.'/includes/Defines.php' ); require_once( $settingsFile ); @@ -207,6 +231,10 @@ if ( empty( $wgUseNormalUser ) && isset( $wgDBadminuser ) ) { $wgDBservers[$i]['password'] = $wgDBpassword; } } + if( isset( $wgLBFactoryConf['serverTemplate'] ) ) { + $wgLBFactoryConf['serverTemplate']['user'] = $wgDBuser; + $wgLBFactoryConf['serverTemplate']['password'] = $wgDBpassword; + } } if ( defined( 'MW_CMDLINE_CALLBACK' ) ) { @@ -235,28 +263,4 @@ $wgShowSQLErrors = true; require_once( "$IP/includes/Setup.php" ); require_once( "$IP/install-utils.inc" ); $wgTitle = null; # Much much faster startup than creating a title object -set_time_limit(0); - -// -------------------------------------------------------------------- -// Functions -// -------------------------------------------------------------------- - -function wfWaitForSlaves( $maxLag ) { - global $wgLoadBalancer; - if ( $maxLag ) { - list( $host, $lag ) = $wgLoadBalancer->getMaxLag(); - while ( $lag > $maxLag ) { - $name = @gethostbyaddr( $host ); - if ( $name !== false ) { - $host = $name; - } - print "Waiting for $host (lagged $lag seconds)...\n"; - sleep($maxLag); - list( $host, $lag ) = $wgLoadBalancer->getMaxLag(); - } - } -} - - - -?> +@set_time_limit(0); |