use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
+use MediaWiki\Shell\CommandFactory;
return [
'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) {
);
},
+ 'ShellCommandFactory' => function ( MediaWikiServices $services ) {
+ $config = $services->getMainConfig();
+
+ $limits = [
+ 'time' => $config->get( 'MaxShellTime' ),
+ 'walltime' => $config->get( 'MaxShellWallClockTime' ),
+ 'memory' => $config->get( 'MaxShellMemory' ),
+ 'filesize' => $config->get( 'MaxShellFileSize' ),
+ ];
+ $cgroup = $config->get( 'ShellCgroup' );
+ $restrictionMethod = $config->get( 'ShellRestrictionMethod' );
+
+ $factory = new CommandFactory( $limits, $cgroup, $restrictionMethod );
+ $factory->setLogger( LoggerFactory::getInstance( 'exec' ) );
+ $factory->logStderr();
+
+ return $factory;
+ },
+
+ 'ExternalStoreFactory' => function ( MediaWikiServices $services ) {
+ $config = $services->getMainConfig();
+
+ return new ExternalStoreFactory(
+ $config->get( 'ExternalStores' )
+ );
+ },
+
///////////////////////////////////////////////////////////////////////////
// NOTE: When adding a service here, don't forget to add a getter function
// in the MediaWikiServices class. The convenience getter should just call