Merge "Replace wfWiki() usage with WikiMap in some additional places"
[lhc/web/wiklou.git] / maintenance / includes / TextPassDumper.php
index 03cad5c..f9b3951 100644 (file)
@@ -133,7 +133,8 @@ TEXT
                $this->addOption( 'quiet', 'Don\'t dump status reports to stderr.' );
                $this->addOption( 'full', 'Dump all revisions of every page' );
                $this->addOption( 'current', 'Base ETA on number of pages in database instead of all revisions' );
-               $this->addOption( 'spawn', 'Spawn a subprocess for loading text records' );
+               $this->addOption( 'spawn', 'Spawn a subprocess for loading text records, optionally specify ' .
+                       'php[,mwscript] paths' );
                $this->addOption( 'buffersize', 'Buffer size in bytes to use for reading the stub. ' .
                        '(Default: 512KB, Minimum: 4KB)', false, true );
 
@@ -191,7 +192,7 @@ TEXT
                        $this->spawn = true;
                        $val = $this->getOption( 'spawn' );
                        if ( $val !== 1 ) {
-                               $this->php = $val;
+                               $this->php = explode( ',', $val, 2 );
                        }
                }
        }
@@ -280,7 +281,7 @@ TEXT
                $this->finalOptionCheck();
 
                // we only want this so we know how to close a stream :-P
-               $this->xmlwriterobj = new XmlDumpWriter();
+               $this->xmlwriterobj = new XmlDumpWriter( XmlDumpWriter::WRITE_CONTENT, $this->schemaVersion );
 
                $input = fopen( $this->input, "rt" );
                $this->readDump( $input );
@@ -372,11 +373,13 @@ TEXT
                                $pageRatePart = '-';
                                $revRatePart = '-';
                        }
+
+                       $dbDomain = WikiMap::getCurrentWikiDbDomain()->getId();
                        $this->progress( sprintf(
                                "%s: %s (ID %d) %d pages (%0.1f|%0.1f/sec all|curr), "
                                        . "%d revs (%0.1f|%0.1f/sec all|curr), %0.1f%%|%0.1f%% "
                                        . "prefetched (all|curr), ETA %s [max %d]",
-                               $now, wfWikiID(), $this->ID, $this->pageCount, $pageRate,
+                               $now, $dbDomain, $this->ID, $this->pageCount, $pageRate,
                                $pageRatePart, $this->revCount, $revRate, $revRatePart,
                                $fetchRate, $fetchRatePart, $etats, $this->maxCount
                        ) );
@@ -756,21 +759,27 @@ TEXT
        function openSpawn() {
                global $IP;
 
-               if ( file_exists( "$IP/../multiversion/MWScript.php" ) ) {
+               $wiki = WikiMap::getWikiIdFromDbDomain( WikiMap::getCurrentWikiDbDomain() );
+               if ( count( $this->php ) == 2 ) {
+                       $mwscriptpath = $this->php[1];
+               } else {
+                       $mwscriptpath = "$IP/../multiversion/MWScript.php";
+               }
+               if ( file_exists( $mwscriptpath ) ) {
                        $cmd = implode( " ",
                                array_map( [ Shell::class, 'escape' ],
                                        [
-                                               $this->php,
-                                               "$IP/../multiversion/MWScript.php",
+                                               $this->php[0],
+                                               $mwscriptpath,
                                                "fetchText.php",
-                                               '--wiki', wfWikiID() ] ) );
+                                               '--wiki', $wiki ] ) );
                } else {
                        $cmd = implode( " ",
                                array_map( [ Shell::class, 'escape' ],
                                        [
-                                               $this->php,
+                                               $this->php[0],
                                                "$IP/maintenance/fetchText.php",
-                                               '--wiki', wfWikiID() ] ) );
+                                               '--wiki', $wiki ] ) );
                }
                $spec = [
                        0 => [ "pipe", "r" ],