Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
ImportSites
0.00% covered (danger)
0.00%
0 / 13
0.00% covered (danger)
0.00%
0 / 3
12
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 / 6
0.00% covered (danger)
0.00%
0 / 1
2
 reportException
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3require_once __DIR__ . '/Maintenance.php';
4
5use MediaWiki\Site\SiteImporter;
6
7/**
8 * Maintenance script for importing 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 ImportSites extends Maintenance {
16
17    public function __construct() {
18        parent::__construct();
19
20        $this->addDescription( 'Imports site definitions from XML into the sites table.' );
21
22        $this->addArg( 'file', 'An XML file containing site definitions (see docs/sitelist.md). ' .
23            'Use "php://stdin" to read from stdin.', true
24        );
25    }
26
27    /**
28     * Do the import.
29     */
30    public function execute() {
31        $file = $this->getArg( 0 );
32
33        $siteStore = $this->getServiceContainer()->getSiteStore();
34        $importer = new SiteImporter( $siteStore );
35        $importer->setExceptionCallback( [ $this, 'reportException' ] );
36
37        $importer->importFromFile( $file );
38
39        $this->output( "Done.\n" );
40    }
41
42    /**
43     * Outputs a message via the output() method.
44     *
45     * @param Exception $ex
46     */
47    public function reportException( Exception $ex ) {
48        $msg = $ex->getMessage();
49        $this->output( "$msg\n" );
50    }
51}
52
53$maintClass = ImportSites::class;
54require_once RUN_MAINTENANCE_IF_MAIN;