mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
synced 2024-11-25 00:38:33 +00:00
d543e7a4f9
Bug: T242134 Change-Id: I64fc136d3d19268008062dc8a2c655c8551244ea
56 lines
1.5 KiB
PHP
56 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace MediaWiki\Extension\DiscussionTools\Maintenance;
|
|
|
|
use ForeignResourceManager;
|
|
use Maintenance;
|
|
|
|
// Security: Disable all stream wrappers and reenable individually as needed
|
|
foreach ( stream_get_wrappers() as $wrapper ) {
|
|
stream_wrapper_unregister( $wrapper );
|
|
}
|
|
// Needed by the Guzzle library for some reason
|
|
stream_wrapper_restore( 'php' );
|
|
// Needed by ForeignResourceManager to unpack TAR files
|
|
stream_wrapper_restore( 'phar' );
|
|
|
|
stream_wrapper_restore( 'file' );
|
|
$basePath = getenv( 'MW_INSTALL_PATH' );
|
|
if ( $basePath ) {
|
|
if ( !is_dir( $basePath )
|
|
|| strpos( $basePath, '.' ) !== false
|
|
|| strpos( $basePath, '~' ) !== false
|
|
) {
|
|
die( "Bad MediaWiki install path: $basePath\n" );
|
|
}
|
|
} else {
|
|
$basePath = __DIR__ . '/../../..';
|
|
}
|
|
require_once "$basePath/maintenance/Maintenance.php";
|
|
|
|
class ManageForeignResources extends Maintenance {
|
|
|
|
public function __construct() {
|
|
parent::__construct();
|
|
$this->requireExtension( 'DiscussionTools' );
|
|
}
|
|
|
|
public function execute() {
|
|
$frm = new ForeignResourceManager(
|
|
__DIR__ . '/../modules/lib/foreign-resources.yaml',
|
|
__DIR__ . '/../modules/lib'
|
|
);
|
|
return $frm->run( 'update', 'all' );
|
|
}
|
|
}
|
|
|
|
$maintClass = ManageForeignResources::class;
|
|
|
|
$doMaintenancePath = RUN_MAINTENANCE_IF_MAIN;
|
|
if ( !( file_exists( $doMaintenancePath ) &&
|
|
realpath( $doMaintenancePath ) === realpath( "$basePath/maintenance/doMaintenance.php" ) ) ) {
|
|
die( "Bad maintenance script location: $basePath\n" );
|
|
}
|
|
|
|
require_once RUN_MAINTENANCE_IF_MAIN;
|