Don't hard fail when we couldn't find an entry point for an extension
[lhc/web/wiklou.git] / maintenance / mergeMessageFileList.php
index 46d5474..bb47631 100644 (file)
@@ -36,11 +36,6 @@ $mmfl = false;
  * @ingroup Maintenance
  */
 class MergeMessageFileList extends Maintenance {
-       /**
-        * @var bool
-        */
-       protected $hasError;
-
        function __construct() {
                parent::__construct();
                $this->addOption(
@@ -81,7 +76,12 @@ 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;
@@ -101,7 +101,6 @@ class MergeMessageFileList extends Maintenance {
                                }
 
                                if ( !$found ) {
-                                       $this->hasError = true;
                                        $this->error( "Extension {$extname} in {$extdir} lacks expected entry point: " .
                                                "extension.json, skin.json, or {$extname}.php." );
                                }
@@ -114,10 +113,6 @@ class MergeMessageFileList extends Maintenance {
                        $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' );
                }