OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
php
/
Composer
/
Util
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
π
..
-
07/20/2024 06:32:22 AM
rwxr-xr-x
π
AuthHelper.php
1.66 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Bitbucket.php
8.38 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
ComposerMirror.php
1.75 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
ConfigValidator.php
5.45 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
ErrorHandler.php
2.24 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Filesystem.php
21.29 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Git.php
14.3 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
GitHub.php
4.52 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
GitLab.php
5.42 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
IniHelper.php
1.91 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
NoProxyPattern.php
4.07 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Perforce.php
16.72 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Platform.php
2.54 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
ProcessExecutor.php
5.49 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
RemoteFilesystem.php
41.17 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Silencer.php
2.12 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
SpdxLicense.php
570 bytes
01/31/2018 03:28:18 PM
rw-r--r--
π
StreamContextFactory.php
7.13 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Svn.php
9.31 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
TlsHelper.php
6.51 KB
01/31/2018 03:28:18 PM
rw-r--r--
π
Url.php
2.86 KB
01/31/2018 03:28:18 PM
rw-r--r--
Editing: ProcessExecutor.php
Close
<?php /* * This file is part of Composer. * * (c) Nils Adermann <naderman@naderman.de> * Jordi Boggiano <j.boggiano@seld.be> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Composer\Util; use Composer\IO\IOInterface; use Symfony\Component\Process\Process; use Symfony\Component\Process\ProcessUtils; /** * @author Robert SchΓΆnthal <seroscho@googlemail.com> */ class ProcessExecutor { protected static $timeout = 300; protected $captureOutput; protected $errorOutput; protected $io; public function __construct(IOInterface $io = null) { $this->io = $io; } /** * runs a process on the commandline * * @param string $command the command to execute * @param mixed $output the output will be written into this var if passed by ref * if a callable is passed it will be used as output handler * @param string $cwd the working directory * @return int statuscode */ public function execute($command, &$output = null, $cwd = null) { if ($this->io && $this->io->isDebug()) { $safeCommand = preg_replace_callback('{://(?P<user>[^:/\s]+):(?P<password>[^@\s/]+)@}i', function ($m) { if (preg_match('{^[a-f0-9]{12,}$}', $m['user'])) { return '://***:***@'; } return '://'.$m['user'].':***@'; }, $command); $this->io->writeError('Executing command ('.($cwd ?: 'CWD').'): '.$safeCommand); } // make sure that null translate to the proper directory in case the dir is a symlink // and we call a git command, because msysgit does not handle symlinks properly if (null === $cwd && Platform::isWindows() && false !== strpos($command, 'git') && getcwd()) { $cwd = realpath(getcwd()); } $this->captureOutput = count(func_get_args()) > 1; $this->errorOutput = null; $process = new Process($command, $cwd, null, null, static::getTimeout()); $callback = is_callable($output) ? $output : array($this, 'outputHandler'); $process->run($callback); if ($this->captureOutput && !is_callable($output)) { $output = $process->getOutput(); } $this->errorOutput = $process->getErrorOutput(); return $process->getExitCode(); } public function splitLines($output) { $output = trim($output); return ((string) $output === '') ? array() : preg_split('{\r?\n}', $output); } /** * Get any error output from the last command * * @return string */ public function getErrorOutput() { return $this->errorOutput; } public function outputHandler($type, $buffer) { if ($this->captureOutput) { return; } if (null === $this->io) { echo $buffer; return; } if (Process::ERR === $type) { $this->io->writeError($buffer, false); } else { $this->io->write($buffer, false); } } public static function getTimeout() { return static::$timeout; } public static function setTimeout($timeout) { static::$timeout = $timeout; } /** * Escapes a string to be used as a shell argument. * * @param string $argument The argument that will be escaped * * @return string The escaped argument */ public static function escape($argument) { if (method_exists('Symfony\Component\Process\ProcessUtils', 'escapeArgument')) { return ProcessUtils::escapeArgument($argument); } return self::escapeArgument($argument); } /** * Copy of ProcessUtils::escapeArgument() that is removed in Symfony 4. * * @param string $argument * * @return string */ private static function escapeArgument($argument) { //Fix for PHP bug #43784 escapeshellarg removes % from given string //Fix for PHP bug #49446 escapeshellarg doesn't work on Windows //@see https://bugs.php.net/bug.php?id=43784 //@see https://bugs.php.net/bug.php?id=49446 if ('\\' === DIRECTORY_SEPARATOR) { if ('' === $argument) { return escapeshellarg($argument); } $escapedArgument = ''; $quote = false; foreach (preg_split('/(")/', $argument, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $part) { if ('"' === $part) { $escapedArgument .= '\\"'; } elseif (self::isSurroundedBy($part, '%')) { // Avoid environment variable expansion $escapedArgument .= '^%"'.substr($part, 1, -1).'"^%'; } else { // escape trailing backslash if ('\\' === substr($part, -1)) { $part .= '\\'; } $quote = true; $escapedArgument .= $part; } } if ($quote) { $escapedArgument = '"'.$escapedArgument.'"'; } return $escapedArgument; } return "'".str_replace("'", "'\\''", $argument)."'"; } private static function isSurroundedBy($arg, $char) { return 2 < strlen($arg) && $char === $arg[0] && $char === $arg[strlen($arg) - 1]; } }