define( 'MW_NO_EXTENSION_MESSAGES', 1 );
require_once __DIR__ . '/Maintenance.php';
-$maintClass = 'MergeMessageFileList';
+$maintClass = MergeMessageFileList::class;
$mmfl = false;
/**
* @ingroup Maintenance
*/
class MergeMessageFileList extends Maintenance {
- /**
- * @var bool
- */
- protected $hasError;
-
function __construct() {
parent::__construct();
$this->addOption(
}
public function execute() {
- // @codingStandardsIgnoreStart Ignore error: Global variable "$mmfl" is lacking 'wg' prefix
+ // phpcs:ignore MediaWiki.NamingConventions.ValidGlobalName.wgPrefix
global $mmfl;
- // @codingStandardsIgnoreEnd
global $wgExtensionEntryPointListFiles;
if ( !count( $wgExtensionEntryPointListFiles )
&& !$this->hasOption( 'list-file' )
&& !$this->hasOption( 'extensions-dir' )
) {
- $this->error( "Either --list-file or --extensions-dir must be provided if " .
- "\$wgExtensionEntryPointListFiles is not set", 1 );
+ $this->fatalError( "Either --list-file or --extensions-dir must be provided if " .
+ "\$wgExtensionEntryPointListFiles is not set" );
}
$mmfl = [ 'setupFiles' => [] ];
$extdir = $this->getOption( 'extensions-dir' );
# 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 = [
- "$extdir/$extname/extension.json",
- "$extdir/$extname/skin.json",
- "$extdir/$extname/$extname.php"
- ];
- $found = false;
- foreach ( $possibilities as $extfile ) {
- if ( file_exists( $extfile ) ) {
- $mmfl['setupFiles'][] = $extfile;
- $found = true;
- break;
+ $entries = scandir( $extdir );
+ foreach ( $entries as $extname ) {
+ if ( $extname == '.' || $extname == '..' || !is_dir( "$extdir/$extname" ) ) {
+ continue;
+ }
+ $possibilities = [
+ "$extdir/$extname/extension.json",
+ "$extdir/$extname/skin.json",
+ "$extdir/$extname/$extname.php"
+ ];
+ $found = false;
+ foreach ( $possibilities as $extfile ) {
+ if ( file_exists( $extfile ) ) {
+ $mmfl['setupFiles'][] = $extfile;
+ $found = true;
+ break;
+ }
}
- }
- if ( !$found ) {
- $this->hasError = true;
- $this->error( "Extension {$extname} in {$extdir} lacks expected entry point: " .
- "extension.json, skin.json, or {$extname}.php." );
+ if ( !$found ) {
+ $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' );
}
fwrite( STDERR, "\n" );
$s =
- "<" . "?php\n" .
+ "<?php\n" .
"## This file is generated by mergeMessageFileList.php. Do not edit it directly.\n\n" .
"if ( defined( 'MW_NO_EXTENSION_MESSAGES' ) ) return;\n\n" .
'$wgExtensionMessagesFiles = ' . var_export( $wgExtensionMessagesFiles, true ) . ";\n\n" .