addDescription( 'Cache sites as json for file-based lookup.' ); $this->addOption( 'file', 'File to output the json to', false, true ); } public function execute() { $sitesCacheFileBuilder = new SitesCacheFileBuilder( \MediaWiki\MediaWikiServices::getInstance()->getSiteLookup(), $this->getCacheFile() ); $sitesCacheFileBuilder->build(); } /** * @return string */ private function getCacheFile() { if ( $this->hasOption( 'file' ) ) { $jsonFile = $this->getOption( 'file' ); } else { $jsonFile = $this->getConfig()->get( 'SitesCacheFile' ); if ( $jsonFile === false ) { $this->fatalError( 'Error: No file set in configuration for SitesCacheFile.' ); } } return $jsonFile; } } $maintClass = RebuildSitesCache::class; require_once RUN_MAINTENANCE_IF_MAIN;