X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fpsy%2Fpsysh%2Fsrc%2FPsy%2FCommand%2FWhereamiCommand.php;fp=vendor%2Fpsy%2Fpsysh%2Fsrc%2FPsy%2FCommand%2FWhereamiCommand.php;h=0000000000000000000000000000000000000000;hp=065399bb40ac0dfbe13725b6e99e0c87b3d24ad2;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/vendor/psy/psysh/src/Psy/Command/WhereamiCommand.php b/vendor/psy/psysh/src/Psy/Command/WhereamiCommand.php deleted file mode 100644 index 065399bb4..000000000 --- a/vendor/psy/psysh/src/Psy/Command/WhereamiCommand.php +++ /dev/null @@ -1,152 +0,0 @@ -colorMode = $colorMode ?: Configuration::COLOR_MODE_AUTO; - - if (version_compare(PHP_VERSION, '5.3.6', '>=')) { - $this->backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - } else { - $this->backtrace = debug_backtrace(); - } - - return parent::__construct(); - } - - /** - * {@inheritdoc} - */ - protected function configure() - { - $this - ->setName('whereami') - ->setDefinition(array( - new InputOption('num', 'n', InputOption::VALUE_OPTIONAL, 'Number of lines before and after.', '5'), - )) - ->setDescription('Show where you are in the code.') - ->setHelp( - <<<'HELP' -Show where you are in the code. - -Optionally, include how many lines before and after you want to display. - -e.g. -> whereami -> whereami -n10 -HELP - ); - } - - /** - * Obtains the correct stack frame in the full backtrace. - * - * @return array - */ - protected function trace() - { - foreach (array_reverse($this->backtrace) as $stackFrame) { - if ($this->isDebugCall($stackFrame)) { - return $stackFrame; - } - } - - return end($this->backtrace); - } - - private static function isDebugCall(array $stackFrame) - { - $class = isset($stackFrame['class']) ? $stackFrame['class'] : null; - $function = isset($stackFrame['function']) ? $stackFrame['function'] : null; - - return ($class === null && $function === 'Psy\debug') || - ($class === 'Psy\Shell' && in_array($function, array('__construct', 'debug'))); - } - - /** - * Determine the file and line based on the specific backtrace. - * - * @return array - */ - protected function fileInfo() - { - $stackFrame = $this->trace(); - if (preg_match('/eval\(/', $stackFrame['file'])) { - preg_match_all('/([^\(]+)\((\d+)/', $stackFrame['file'], $matches); - $file = $matches[1][0]; - $line = (int) $matches[2][0]; - } else { - $file = $stackFrame['file']; - $line = $stackFrame['line']; - } - - return compact('file', 'line'); - } - - /** - * {@inheritdoc} - */ - protected function execute(InputInterface $input, OutputInterface $output) - { - $info = $this->fileInfo(); - $num = $input->getOption('num'); - $factory = new ConsoleColorFactory($this->colorMode); - $colors = $factory->getConsoleColor(); - $highlighter = new Highlighter($colors); - $contents = file_get_contents($info['file']); - - $output->startPaging(); - $output->writeln(''); - $output->writeln(sprintf('From %s:%s:', $this->replaceCwd($info['file']), $info['line'])); - $output->writeln(''); - $output->write($highlighter->getCodeSnippet($contents, $info['line'], $num, $num), ShellOutput::OUTPUT_RAW); - $output->stopPaging(); - } - - /** - * Replace the given directory from the start of a filepath. - * - * @param string $file - * - * @return string - */ - private function replaceCwd($file) - { - $cwd = getcwd(); - if ($cwd === false) { - return $file; - } - - $cwd = rtrim($cwd, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR; - - return preg_replace('/^' . preg_quote($cwd, '/') . '/', '', $file); - } -}