Add partial support for running Parsoid selser tests
[mediawiki.git] / maintenance / generateConfigSchemaArray.php
blob50093d8901f9610cd01457c98e6432200c409c24
1 <?php
3 use Wikimedia\StaticArrayWriter;
5 require_once __DIR__ . '/Maintenance.php';
6 require_once __DIR__ . '/includes/ConfigSchemaDerivativeTrait.php';
8 /**
9 * Maintenance script that generates the PHP representation of the config-schema.yaml file.
11 * @ingroup Maintenance
13 class GenerateConfigSchemaArray extends Maintenance {
14 use ConfigSchemaDerivativeTrait;
16 /** @var string */
17 private const DEFAULT_OUTPUT_PATH = __DIR__ . '/../includes/config-schema.php';
19 public function __construct() {
20 parent::__construct();
22 $this->addDescription( 'Generate an optimized config-schema.php file.' );
24 $this->addOption(
25 'output',
26 'Path to output relative to $IP. Default: ' . self::DEFAULT_OUTPUT_PATH,
27 false,
28 true
32 public function execute() {
33 $schema = $this->loadSettingsSource();
35 foreach ( $schema['config-schema'] as $key => &$value ) {
36 unset( $value['description'] );
39 $content = ( new StaticArrayWriter() )->write(
40 $schema,
41 "This file is automatically generated using maintenance/generateConfigSchema.php.\n" .
42 "phpcs:disable Generic.Files.LineLength"
45 $this->writeOutput( self::DEFAULT_OUTPUT_PATH, $content );
49 $maintClass = GenerateConfigSchemaArray::class;
50 require_once RUN_MAINTENANCE_IF_MAIN;