X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=maintenance%2FcommandLine.inc;h=a6274f0cc9f19838341fb77d88fd8c0365083bfb;hb=217efb5ed63308c52cee06976a69d7c478ac512f;hp=6c6b3d483cb1d1949e26448303c6eafcedc4b5d4;hpb=9f6b80857f047fb4e55f2bcb8c09f3285e7db1ab;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/commandLine.inc b/maintenance/commandLine.inc index 6c6b3d483c..a6274f0cc9 100644 --- a/maintenance/commandLine.inc +++ b/maintenance/commandLine.inc @@ -25,6 +25,7 @@ if ( !isset( $optionsWithArgs ) ) { } $self = array_shift( $argv ); +$self = __FILE__; $IP = realpath( dirname( $self ) . "/.." ); chdir( $IP ); @@ -75,9 +76,13 @@ for( $arg = reset( $argv ); $arg !== false; $arg = next( $argv ) ) { $wgCommandLineMode = true; # Turn off output buffering if it's on @ob_end_flush(); -$sep = strchr( $include_path = ini_get( "include_path" ), ";" ) ? ";" : ":"; +$sep = PATH_SEPARATOR; -if ( $sep == ":" && strpos( `hostname`, "wikimedia.org" ) !== false ) { +if (!isset( $wgUseNormalUser ) ) { + $wgUseNormalUser = false; +} + +if ( file_exists( '/home/wikipedia/common/langlist' ) ) { $wgWikiFarm = true; require_once( "$IP/includes/SiteConfiguration.php" ); @@ -87,7 +92,7 @@ if ( $sep == ":" && strpos( `hostname`, "wikimedia.org" ) !== false ) { if ( empty( $wgNoDBParam ) ) { # Check if we were passed a db name $db = array_shift( $args ); - list( $site, $lang ) = $conf->siteFromDB( $db ); + list( $site, $lang ) = $wgConf->siteFromDB( $db ); # If not, work out the language and site the old way if ( is_null( $site ) || is_null( $lang ) ) { @@ -109,9 +114,8 @@ if ( $sep == ":" && strpos( `hostname`, "wikimedia.org" ) !== false ) { # 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" ) { - $wgDBuser = $wgDBadminuser = "wikiadmin"; - $wgDBpassword = $wgDBadminpassword = trim(`wikiadmin_pass`); + if ( $_ENV['USER'] == "apache" ) { + $wgUseNormalUser = true; } putenv( "wikilang=$lang"); @@ -120,7 +124,15 @@ if ( $sep == ":" && strpos( `hostname`, "wikimedia.org" ) !== false ) { ini_set( "include_path", ".:$IP:$IP/includes:$IP/languages:$IP/maintenance" ); require_once( "$IP/includes/Defines.php" ); - require_once( "/home/wikipedia/common/php-1.4/CommonSettings.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; $settingsFile = "$IP/LocalSettings.php"; @@ -145,10 +157,8 @@ if ( $sep == ":" && strpos( `hostname`, "wikimedia.org" ) !== false ) { @ob_end_flush(); # Same with these $wgCommandLineMode = true; -$wgDBuser = $wgDBadminuser; -$wgDBpassword = $wgDBadminpassword; -if ( !empty( $wgUseNormalUser ) && isset( $wgDBadminuser ) ) { +if ( empty( $wgUseNormalUser ) && isset( $wgDBadminuser ) && $wgDBservers ) { $wgDBuser = $wgDBadminuser; $wgDBpassword = $wgDBadminpassword; @@ -158,6 +168,11 @@ if ( !empty( $wgUseNormalUser ) && isset( $wgDBadminuser ) ) { } } +if ( defined( 'MW_CMDLINE_CALLBACK' ) ) { + $fn = MW_CMDLINE_CALLBACK; + $fn(); +} + ini_set( 'memory_limit', -1 ); require_once( "Setup.php" );