Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
ExportSites
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
30
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
2
 execute
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3require_once __DIR__ . '/Maintenance.php';
4
5use MediaWiki\Site\SiteExporter;
6
7/**
8 * Maintenance script for exporting site definitions from XML into the sites table.
9 *
10 * @since 1.25
11 *
12 * @license GPL-2.0-or-later
13 * @author Daniel Kinzler
14 */
15class ExportSites extends Maintenance {
16
17    public function __construct() {
18        parent::__construct();
19
20        $this->addDescription( 'Exports site definitions the sites table to XML file' );
21
22        $this->addArg( 'file', 'A file to write the XML to (see docs/sitelist.md). ' .
23            'Use "php://stdout" to write to stdout.', true
24        );
25    }
26
27    /**
28     * Do the actual work. All child classes will need to implement this
29     */
30    public function execute() {
31        $file = $this->getArg( 0 );
32
33        if ( $file === 'php://output' || $file === 'php://stdout' ) {
34            $this->mQuiet = true;
35        }
36
37        $handle = fopen( $file, 'w' );
38
39        if ( !$handle ) {
40            $this->fatalError( "Failed to open $file for writing.\n" );
41        }
42
43        $exporter = new SiteExporter( $handle );
44
45        $siteLookup = $this->getServiceContainer()->getSiteLookup();
46        $exporter->exportSites( $siteLookup->getSites() );
47
48        fclose( $handle );
49
50        $this->output( "Exported sites to " . realpath( $file ) . ".\n" );
51    }
52
53}
54
55$maintClass = ExportSites::class;
56require_once RUN_MAINTENANCE_IF_MAIN;