To test:
$wgMimeDetectorCommand = 'file -bi';
$services = \MediaWiki\MediaWikiServices::getInstance();
echo $services->getMimeAnalyzer()->guessMimeType('/vagrant/mediawiki/README');
Change-Id: Iaf124901c68292736e5588636f5ec746147f6a54
$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();
};
}