%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/vendor/phpro/grumphp/src/Locator/ |
Upload File : |
<?php
declare(strict_types=1);
namespace GrumPHP\Locator;
use GrumPHP\Exception\ExecutableNotFoundException;
use GrumPHP\Util\Paths;
use Symfony\Component\Process\ExecutableFinder;
class ExternalCommand
{
/**
* @var list<string>
*/
private $suffixes = ['', '.phar'];
/**
* @var string
*/
protected $binDir;
/**
* @var ExecutableFinder
*/
protected $executableFinder;
public function __construct(string $binDir, ExecutableFinder $executableFinder)
{
$this->binDir = rtrim($binDir, '/\\');
$this->executableFinder = $executableFinder;
}
public static function loadWithPaths(Paths $paths, ExecutableFinder $executableFinder): self
{
return new self(
$paths->getBinDir(),
$executableFinder
);
}
public function locate(string $command): string
{
foreach ($this->suffixes as $suffix) {
$cmdName = $command . $suffix;
// Search executable:
$executable = $this->executableFinder->find($cmdName, null, [$this->binDir]);
if ($executable) {
return $executable;
}
}
throw ExecutableNotFoundException::forCommand($command);
}
}