Merge "Don't fallback from uk to ru"
[lhc/web/wiklou.git] / maintenance / mergeMessageFileList.php
index b491497..a650aa0 100644 (file)
@@ -51,8 +51,9 @@ class MergeMessageFileList extends Maintenance {
                );
                $this->addOption( 'extensions-dir', 'Path where extensions can be found.', false, true );
                $this->addOption( 'output', 'Send output to this file (omit for stdout)', false, true );
-               $this->mDescription = 'Merge $wgExtensionMessagesFiles and $wgMessagesDirs from ' .
-                       ' various extensions to produce a single file listing all message files and dirs.';
+               $this->addDescription( 'Merge $wgExtensionMessagesFiles and $wgMessagesDirs from ' .
+                       ' various extensions to produce a single file listing all message files and dirs.'
+               );
        }
 
        public function execute() {
@@ -69,7 +70,7 @@ class MergeMessageFileList extends Maintenance {
                                "\$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' ) ) {
@@ -80,16 +81,21 @@ class MergeMessageFileList extends Maintenance {
                # 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 ) ) {
@@ -132,7 +138,7 @@ class MergeMessageFileList extends Maintenance {
        private function readFile( $fileName ) {
                global $IP;
 
-               $files = array();
+               $files = [];
                $fileLines = file( $fileName );
                if ( $fileLines === false ) {
                        $this->hasError = true;
@@ -162,7 +168,7 @@ class MergeMessageFileList extends Maintenance {
 
 require_once RUN_MAINTENANCE_IF_MAIN;
 
-$queue = array();
+$queue = [];
 foreach ( $mmfl['setupFiles'] as $fileName ) {
        if ( strval( $fileName ) === '' ) {
                continue;
@@ -181,7 +187,7 @@ foreach ( $mmfl['setupFiles'] as $fileName ) {
 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] );
                }
@@ -196,11 +202,11 @@ $s =
        '$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 );