* Extra newline for pretty output
[lhc/web/wiklou.git] / maintenance / commandLine.inc
index 6c6b3d4..a6274f0 100644 (file)
@@ -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" );