X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Fincludes%2FTextPassDumper.php;h=f9b395111393100b56cd60c920ec927f5e2c2d22;hb=9d37c792b2ee408b6a01b43a1a649e6074c11c34;hp=03cad5c97879927e81ce7cb65a145fabb24599a5;hpb=8c59f43b3342292a464db5df492e478b29a64aa5;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/includes/TextPassDumper.php b/maintenance/includes/TextPassDumper.php index 03cad5c978..f9b3951113 100644 --- a/maintenance/includes/TextPassDumper.php +++ b/maintenance/includes/TextPassDumper.php @@ -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" ],