X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=maintenance%2FcommandLine.inc;h=86a558d0e1068b987aff07636f1b43d888f74e31;hb=38c7f444e1c13327e203ce4e2890826782b39876;hp=c213a2edd83669eb801e3f40bc24a09759340405;hpb=1b68ff674c6c51091cf1d25ef71d84c40a00b2c4;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/commandLine.inc b/maintenance/commandLine.inc index c213a2edd8..86a558d0e1 100644 --- a/maintenance/commandLine.inc +++ b/maintenance/commandLine.inc @@ -1,216 +1,59 @@ 1 ) { - $option = $bits[0]; - $param = $bits[1]; - } else { - $param = 1; - } - $options[$option] = $param; - } - } elseif ( substr( $arg, 0, 1 ) == '-' ) { - # Short options - for ( $p=1; $paddOption( $name, '', false, true ); } - } else { - $args[] = $arg; } -} - - -# General initialisation -$wgCommandLineMode = true; -# Turn off output buffering if it's on -@ob_end_flush(); -$sep = PATH_SEPARATOR; - -if (!isset( $wgUseNormalUser ) ) { - $wgUseNormalUser = false; -} - -if ( file_exists( '/home/wikipedia/common/langlist' ) ) { - $wgWikiFarm = true; - require_once( $IP.'/includes/SiteConfiguration.php' ); - - # Get $conf - require( $IP.'/InitialiseSettings.php' ); - - if ( empty( $wgNoDBParam ) ) { - # Check if we were passed a db name - $db = array_shift( $args ); - list( $site, $lang ) = $wgConf->siteFromDB( $db ); - - # If not, work out the language and site the old way - if ( is_null( $site ) || is_null( $lang ) ) { - if ( !$db ) { - $lang = 'aa'; - } else { - $lang = $db; - } - if ( isset( $args[0] ) ) { - $site = array_shift( $args ); - } else { - $site = 'wikipedia'; - } + /** + * No help, it would just be misleading since it misses custom options + */ + protected function maybeHelp( $force = false ) { + if ( !$force ) { + return; } - } else { - $lang = 'aa'; - $site = 'wikipedia'; - } - - # This is for the IRC scripts, which now run as the apache user - # The apache user doesn't have access to the wikiadmin_pass command - if ( $_ENV['USER'] == 'apache' ) { - $wgUseNormalUser = true; - } - - putenv( 'wikilang='.$lang); - - $DP = $IP; - ini_set( 'include_path', ".:$IP:$IP/includes:$IP/languages:$IP/maintenance" ); - - require_once( $IP.'/includes/Defines.php' ); - require_once( $IP.'/CommonSettings.php' ); - - if ( $wgUseRootUser ) { - $wgDBuser = $wgDBadminuser = 'root'; - $wgDBpassword = $wgDBadminpassword = trim(`mysql_root_pass`); - } elseif ( !$wgUseNormalUser ) { - $wgDBuser = $wgDBadminuser = 'wikiadmin'; - $wgDBpassword = $wgDBadminpassword = trim(`wikiadmin_pass`); - } -} else { - $wgWikiFarm = false; - if ( isset( $options['conf'] ) ) { - $settingsFile = $options['conf']; - } else { - $settingsFile = "$IP/LocalSettings.php"; - } - - if ( ! is_readable( $settingsFile ) ) { - print "A copy of your installation's LocalSettings.php\n" . - "must exist in the source directory.\n"; - exit(); + parent::maybeHelp( true ); } - $wgCommandLineMode = true; - $DP = $IP; - require_once( $IP.'/includes/Defines.php' ); - require_once( $settingsFile ); - ini_set( 'include_path', ".$sep$IP$sep$IP/includes$sep$IP/languages$sep$IP/maintenance" ); - - if ( is_readable( $IP.'/AdminSettings.php' ) ) { - require_once( $IP.'/AdminSettings.php' ); - } -} - -# Turn off output buffering again, it might have been turned on in the settings files -@ob_end_flush(); -# Same with these -$wgCommandLineMode = true; - -if ( empty( $wgUseNormalUser ) && isset( $wgDBadminuser ) && $wgDBservers ) { - $wgDBuser = $wgDBadminuser; - $wgDBpassword = $wgDBadminpassword; - foreach ( $wgDBservers as $i => $server ) { - $wgDBservers[$i]['user'] = $wgDBuser; - $wgDBservers[$i]['password'] = $wgDBpassword; + public function execute() { + global $args, $options; + $args = $this->mArgs; + $options = $this->mOptions; } } -if ( defined( 'MW_CMDLINE_CALLBACK' ) ) { - $fn = MW_CMDLINE_CALLBACK; - $fn(); -} - -ini_set( 'memory_limit', -1 ); - -require_once( 'Setup.php' ); -require_once( 'install-utils.inc' ); -$wgTitle = Title::newFromText( 'Command line script' ); -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(); - } - } -} - - +$maintClass = 'CommandLineInc'; +require( RUN_MAINTENANCE_IF_MAIN ); -?>