jenkins-bot has submitted this change and it was merged.

Change subject: mergeMessageFileList: Support reading extension/skin.json files
......................................................................


mergeMessageFileList: Support reading extension/skin.json files

No more hacky reading of PHP files!

Bug: T94756
Change-Id: I0a92f8904bbc422d5c893f7c0af2daedf7576cf0
---
M maintenance/mergeMessageFileList.php
1 file changed, 34 insertions(+), 7 deletions(-)

Approvals:
  Chad: Looks good to me, approved
  Gergő Tisza: Looks good to me, but someone else must approve
  jenkins-bot: Verified



diff --git a/maintenance/mergeMessageFileList.php 
b/maintenance/mergeMessageFileList.php
index 2a6f8a8..43fa460 100644
--- a/maintenance/mergeMessageFileList.php
+++ b/maintenance/mergeMessageFileList.php
@@ -85,12 +85,24 @@
                                if ( $extname == '.' || $extname == '..' || 
!is_dir( "$extdir/$extname" ) ) {
                                        continue;
                                }
-                               $extfile = 
"{$extdir}/{$extname}/{$extname}.php";
-                               if ( file_exists( $extfile ) ) {
-                                       $mmfl['setupFiles'][] = $extfile;
-                               } else {
+                               $possibilities = array(
+                                       "$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 {$extname}.php" );
+                                       $this->error( "Extension {$extname} in 
{$extdir} lacks expected entry point: " .
+                                               "extension.json, skin.json, or 
{$extname}.php." );
                                }
                        }
                }
@@ -150,6 +162,7 @@
 
 require_once RUN_MAINTENANCE_IF_MAIN;
 
+$queue = array();
 foreach ( $mmfl['setupFiles'] as $fileName ) {
        if ( strval( $fileName ) === '' ) {
                continue;
@@ -157,12 +170,26 @@
        if ( empty( $mmfl['quiet'] ) ) {
                fwrite( STDERR, "Loading data from $fileName\n" );
        }
-       // Include the extension to update $wgExtensionMessagesFiles
-       if ( !( include_once $fileName ) ) {
+       // Using extension.json or skin.json
+       if ( substr( $fileName, -strlen( '.json' ) ) === '.json' ) {
+               $queue[$fileName] = 1;
+       } elseif ( !( include_once $fileName ) ) {
+               // Include the extension to update $wgExtensionMessagesFiles
                fwrite( STDERR, "Unable to read $fileName\n" );
                exit( 1 );
        }
 }
+
+if ( $queue ) {
+       $registry = new ExtensionRegistry();
+       $data = $registry->readFromQueue( $queue );
+       foreach ( array( 'wgExtensionMessagesFiles', 'wgMessagesDirs' ) as $var 
) {
+               if ( isset( $data['globals'][$var] ) ) {
+                       $GLOBALS[$var] = array_merge( $data['globals'][$var], 
$GLOBALS[$var] );
+               }
+       }
+}
+
 fwrite( STDERR, "\n" );
 $s =
        "<" . "?php\n" .

-- 
To view, visit https://gerrit.wikimedia.org/r/201343
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0a92f8904bbc422d5c893f7c0af2daedf7576cf0
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Legoktm <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: GergÅ‘ Tisza <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Parent5446 <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to