use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
+use MediaWiki\Shell\CommandFactory;
return [
'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) {
return ObjectFactory::constructClassInstance( $conf['class'], [ $conf ] );
},
- 'ParserCache' => function( MediaWikiServices $services ) {
+ 'ParserCache' => function ( MediaWikiServices $services ) {
$config = $services->getMainConfig();
$cache = ObjectCache::getInstance( $config->get( 'ParserCacheType' ) );
wfDebugLog( 'caches', 'parser: ' . get_class( $cache ) );
);
},
- 'LinkCache' => function( MediaWikiServices $services ) {
+ 'LinkCache' => function ( MediaWikiServices $services ) {
return new LinkCache(
$services->getTitleFormatter(),
$services->getMainWANObjectCache()
);
},
+ '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' );
+
+ $factory = new CommandFactory( $limits, $cgroup );
+ $factory->setLogger( LoggerFactory::getInstance( 'exec' ) );
+ $factory->logStderr();
+
+ return $factory;
+ },
+
///////////////////////////////////////////////////////////////////////////
// NOTE: When adding a service here, don't forget to add a getter function
// in the MediaWikiServices class. The convenience getter should just call