From 0216bd487197c446cf872f0e096dd6647f1ffb61 Mon Sep 17 00:00:00 2001 From: Max Semenik Date: Tue, 24 Oct 2017 18:51:45 -0700 Subject: [PATCH] Switch ServiceWiring to the new execution framework To test: $wgMimeDetectorCommand = 'file -bi'; $services = \MediaWiki\MediaWikiServices::getInstance(); echo $services->getMimeAnalyzer()->guessMimeType('/vagrant/mediawiki/README'); Change-Id: Iaf124901c68292736e5588636f5ec746147f6a54 --- includes/ServiceWiring.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 5131917d94..dd837a848c 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -286,8 +286,14 @@ return [ $detectorCmd = $mainConfig->get( 'MimeDetectorCommand' ); if ( $detectorCmd ) { - $params['detectCallback'] = function ( $file ) use ( $detectorCmd ) { - return wfShellExec( "$detectorCmd " . wfEscapeShellArg( $file ) ); + $factory = $services->getShellCommandFactory(); + $params['detectCallback'] = function ( $file ) use ( $detectorCmd, $factory ) { + $result = $factory->create() + // $wgMimeDetectorCommand can contain commands with parameters + ->unsafeParams( $detectorCmd ) + ->params( $file ) + ->execute(); + return $result->getStdout(); }; } -- 2.20.1