$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 );
$this->spawn = true;
$val = $this->getOption( 'spawn' );
if ( $val !== 1 ) {
- $this->php = $val;
+ $this->php = explode( ',', $val, 2 );
}
}
}
$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 );
$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
) );
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" ],