aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/BinaryFinder.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/BinaryFinder.php')
-rw-r--r--lib/private/BinaryFinder.php28
1 files changed, 18 insertions, 10 deletions
diff --git a/lib/private/BinaryFinder.php b/lib/private/BinaryFinder.php
index f7ac7a5195c..3dad245ff0d 100644
--- a/lib/private/BinaryFinder.php
+++ b/lib/private/BinaryFinder.php
@@ -11,15 +11,28 @@ namespace OC;
use OCP\IBinaryFinder;
use OCP\ICache;
use OCP\ICacheFactory;
+use OCP\IConfig;
use Symfony\Component\Process\ExecutableFinder;
/**
* Service that find the binary path for a program
*/
class BinaryFinder implements IBinaryFinder {
+ public const DEFAULT_BINARY_SEARCH_PATHS = [
+ '/usr/local/sbin',
+ '/usr/local/bin',
+ '/usr/sbin',
+ '/usr/bin',
+ '/sbin',
+ '/bin',
+ '/opt/bin',
+ ];
private ICache $cache;
- public function __construct(ICacheFactory $cacheFactory) {
+ public function __construct(
+ ICacheFactory $cacheFactory,
+ private IConfig $config,
+ ) {
$this->cache = $cacheFactory->createLocal('findBinaryPath');
}
@@ -37,15 +50,10 @@ class BinaryFinder implements IBinaryFinder {
if (\OCP\Util::isFunctionEnabled('exec')) {
$exeSniffer = new ExecutableFinder();
// Returns null if nothing is found
- $result = $exeSniffer->find($program, null, [
- '/usr/local/sbin',
- '/usr/local/bin',
- '/usr/sbin',
- '/usr/bin',
- '/sbin',
- '/bin',
- '/opt/bin',
- ]);
+ $result = $exeSniffer->find(
+ $program,
+ null,
+ $this->config->getSystemValue('binary_search_paths', self::DEFAULT_BINARY_SEARCH_PATHS));
if ($result === null) {
$result = false;
}