mDescription = 'Exports site definitions the sites table to XML file'; $this->addArg( 'file', 'A file to write the XML to (see docs/sitelist.txt). Use "php://stdout" to write to stdout.', true ); parent::__construct(); } /** * Do the actual work. All child classes will need to implement this */ public function execute() { $file = $this->getArg( 0 ); if ( $file === 'php://output' || $file === 'php://stdout' ) { $this->mQuiet = true; } $handle = fopen( $file, 'w' ); if ( !$handle ) { $this->error( "Failed to open $file for writing.\n", 1 ); } $exporter = new SiteExporter( $handle ); $sites = SiteSQLStore::newInstance()->getSites( 'recache' ); $exporter->exportSites( $sites ); fclose( $handle ); $this->output( "Exported sites to " . realpath( $file ) . ".\n" ); } } $maintClass = 'ExportSites'; require_once( RUN_MAINTENANCE_IF_MAIN );