diff --git a/lib/private/helper.php b/lib/private/helper.php index 5b1d31bfc5..be448b8ff9 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -872,6 +872,23 @@ class OC_Helper { return true; } + /** + * Try to find a program + * Note: currently windows is not supported + * + * @param string $program + * @return null|string + */ + public static function findBinaryPath($program) { + if (!\OC_Util::runningOnWindows() && self::is_function_enabled('exec')) { + exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode); + if ($returnCode === 0 && count($output) > 0) { + return escapeshellcmd($output[0]); + } + } + return null; + } + /** * Calculate the disc space for the given path * diff --git a/lib/private/preview/movies.php b/lib/private/preview/movies.php index 2a23c2141c..d69266ceb3 100644 --- a/lib/private/preview/movies.php +++ b/lib/private/preview/movies.php @@ -8,28 +8,12 @@ */ namespace OC\Preview; -function findBinaryPath($program) { - exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode); - if ($returnCode === 0 && count($output) > 0) { - return escapeshellcmd($output[0]); - } - return null; -} - // movie preview is currently not supported on Windows if (!\OC_Util::runningOnWindows()) { - $isExecEnabled = \OC_Helper::is_function_enabled('exec'); - $ffmpegBinary = null; - $avconvBinary = null; + $avconvBinary = \OC_Helper::findBinaryPath('avconv'); + $ffmpegBinary = ($avconvBinary) ? null : \OC_Helper::findBinaryPath('ffmpeg'); - if ($isExecEnabled) { - $avconvBinary = findBinaryPath('avconv'); - if (!$avconvBinary) { - $ffmpegBinary = findBinaryPath('ffmpeg'); - } - } - - if($isExecEnabled && ( $avconvBinary || $ffmpegBinary )) { + if ($avconvBinary || $ffmpegBinary) { class Movie extends Provider { public static $avconvBinary; diff --git a/settings/admin.php b/settings/admin.php index d1ed6e75f5..a669974891 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -17,7 +17,7 @@ $config = \OC::$server->getConfig(); $appConfig = \OC::$server->getAppConfig(); // Should we display sendmail as an option? -$template->assign('sendmail_is_available', (bool)findBinaryPath('sendmail')); +$template->assign('sendmail_is_available', (bool) \OC_Helper::findBinaryPath('sendmail')); $template->assign('loglevel', $config->getSystemValue("loglevel", 2)); $template->assign('mail_domain', $config->getSystemValue("mail_domain", '')); @@ -115,19 +115,3 @@ $formsAndMore[] = array('anchor' => 'log-section', 'section-name' => $l->t('Log' $template->assign('forms', $formsAndMore); $template->printPage(); - -/** - * Try to find a program - * - * @param string $program - * @return null|string - */ -function findBinaryPath($program) { - if (OC_Helper::is_function_enabled('exec')) { - exec('command -v ' . escapeshellarg($program) . ' 2> /dev/null', $output, $returnCode); - if ($returnCode === 0 && count($output) > 0) { - return escapeshellcmd($output[0]); - } - } - return null; -}