X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FimportTextFiles.php;h=c99aa155313b9a7321bda55aa57ca1853a6acb7f;hb=2ec769193eec7084c49ed4b4de04fbf023cb5d91;hp=88ee9d7ecdda9a416544a6b0b017a9bfb822b3f3;hpb=71e4493c864e4f14f1c850c710be017a7198fd2b;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/importTextFiles.php b/maintenance/importTextFiles.php index 88ee9d7ecd..c99aa15531 100644 --- a/maintenance/importTextFiles.php +++ b/maintenance/importTextFiles.php @@ -21,6 +21,8 @@ * @ingroup Maintenance */ +use MediaWiki\MediaWikiServices; + require_once __DIR__ . '/Maintenance.php'; /** @@ -63,7 +65,16 @@ class ImportTextFiles extends Maintenance { if ( file_exists( $arg ) ) { $files[$arg] = file_get_contents( $arg ); } else { - $this->error( "Fatal error: The file '$arg' does not exist!", 1 ); + // use glob to support the Windows shell, which doesn't automatically + // expand wildcards + $found = false; + foreach ( glob( $arg ) as $filename ) { + $found = true; + $files[$filename] = file_get_contents( $filename ); + } + if ( !$found ) { + $this->fatalError( "Fatal error: The file '$arg' does not exist!" ); + } } }; @@ -77,7 +88,7 @@ class ImportTextFiles extends Maintenance { } if ( !$user ) { - $this->error( "Invalid username\n", true ); + $this->fatalError( "Invalid username\n" ); } if ( $user->isAnon() ) { $user->addToDatabase(); @@ -94,16 +105,16 @@ class ImportTextFiles extends Maintenance { $timestamp = $useTimestamp ? wfTimestamp( TS_UNIX, filemtime( $file ) ) : wfTimestampNow(); $title = Title::newFromText( $pageName ); - $exists = $title->exists(); - $oldRevID = $title->getLatestRevID(); - $oldRev = $oldRevID ? Revision::newFromId( $oldRevID ) : null; - - if ( !$title ) { + // Have to check for # manually, since it gets interpreted as a fragment + if ( !$title || $title->hasFragment() ) { $this->error( "Invalid title $pageName. Skipping.\n" ); $skipCount++; continue; } + $exists = $title->exists(); + $oldRevID = $title->getLatestRevID(); + $oldRev = $oldRevID ? Revision::newFromId( $oldRevID ) : null; $actualTitle = $title->getPrefixedText(); if ( $exists ) { @@ -120,7 +131,7 @@ class ImportTextFiles extends Maintenance { } } - $rev = new WikiRevision( ConfigFactory::getDefaultInstance()->makeConfig( 'main' ) ); + $rev = new WikiRevision( MediaWikiServices::getInstance()->getMainConfig() ); $rev->setText( rtrim( $text ) ); $rev->setTitle( $title ); $rev->setUserObj( $user ); @@ -188,10 +199,10 @@ class ImportTextFiles extends Maintenance { $this->output( "Done! $successCount succeeded, $skipCount skipped.\n" ); if ( $exit ) { - $this->error( "Import failed with $failCount failed pages.\n", $exit ); + $this->fatalError( "Import failed with $failCount failed pages.\n", $exit ); } } } -$maintClass = "ImportTextFiles"; +$maintClass = ImportTextFiles::class; require_once RUN_MAINTENANCE_IF_MAIN;