* @ingroup Maintenance
*/
class MergeMessageFileList extends Maintenance {
- /**
- * @var bool
- */
- protected $hasError;
-
function __construct() {
parent::__construct();
$this->addOption(
"\$wgExtensionEntryPointListFiles is not set", 1 );
}
- $mmfl = array( 'setupFiles' => array() );
+ $mmfl = [ 'setupFiles' => [] ];
# Add setup files contained in file passed to --list-file
if ( $this->hasOption( 'list-file' ) ) {
# Now find out files in a directory
if ( $this->hasOption( 'extensions-dir' ) ) {
$extdir = $this->getOption( 'extensions-dir' );
- $entries = scandir( $extdir );
+ # Allow multiple directories to be passed with ":" as delimiter
+ $extdirs = explode( ':', $extdir );
+ $entries = [];
+ foreach ( $extdirs as $extdir ) {
+ $entries = array_merge( $entries, scandir( $extdir ) );
+ }
foreach ( $entries as $extname ) {
if ( $extname == '.' || $extname == '..' || !is_dir( "$extdir/$extname" ) ) {
continue;
}
- $possibilities = array(
+ $possibilities = [
"$extdir/$extname/extension.json",
"$extdir/$extname/skin.json",
"$extdir/$extname/$extname.php"
- );
+ ];
$found = false;
foreach ( $possibilities as $extfile ) {
if ( file_exists( $extfile ) ) {
}
if ( !$found ) {
- $this->hasError = true;
$this->error( "Extension {$extname} in {$extdir} lacks expected entry point: " .
"extension.json, skin.json, or {$extname}.php." );
}
$mmfl['setupFiles'] = array_merge( $mmfl['setupFiles'], $extensionPaths );
}
- if ( $this->hasError ) {
- $this->error( "Some files are missing (see above). Giving up.", 1 );
- }
-
if ( $this->hasOption( 'output' ) ) {
$mmfl['output'] = $this->getOption( 'output' );
}
private function readFile( $fileName ) {
global $IP;
- $files = array();
+ $files = [];
$fileLines = file( $fileName );
if ( $fileLines === false ) {
$this->hasError = true;
require_once RUN_MAINTENANCE_IF_MAIN;
-$queue = array();
+$queue = [];
foreach ( $mmfl['setupFiles'] as $fileName ) {
if ( strval( $fileName ) === '' ) {
continue;
if ( $queue ) {
$registry = new ExtensionRegistry();
$data = $registry->readFromQueue( $queue );
- foreach ( array( 'wgExtensionMessagesFiles', 'wgMessagesDirs' ) as $var ) {
+ foreach ( [ 'wgExtensionMessagesFiles', 'wgMessagesDirs' ] as $var ) {
if ( isset( $data['globals'][$var] ) ) {
$GLOBALS[$var] = array_merge( $data['globals'][$var], $GLOBALS[$var] );
}
'$wgExtensionMessagesFiles = ' . var_export( $wgExtensionMessagesFiles, true ) . ";\n\n" .
'$wgMessagesDirs = ' . var_export( $wgMessagesDirs, true ) . ";\n\n";
-$dirs = array(
+$dirs = [
$IP,
dirname( __DIR__ ),
realpath( $IP )
-);
+];
foreach ( $dirs as $dir ) {
$s = preg_replace( "/'" . preg_quote( $dir, '/' ) . "([^']*)'/", '"$IP\1"', $s );