| author | durandn |
| Thu, 10 Sep 2015 15:47:00 +0200 | |
| changeset 120 | 93af8545dd96 |
| parent 8 | 5a0cbbe0922a |
| permissions | -rw-r--r-- |
<?php namespace Laravel\Homestead; use Symfony\Component\Process\Process; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class RunCommand extends Command { /** * Configure the command options. * * @return void */ protected function configure() { $this ->setName('run') ->setDescription('Run commands through the Homestead machine via SSH') ->addArgument('ssh-command', InputArgument::REQUIRED, 'The command to pass through to the virtual machine.'); } /** * Execute the command. * * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output * @return void */ public function execute(InputInterface $input, OutputInterface $output) { chdir(__DIR__.'/../'); $command = $input->getArgument('ssh-command'); passthru($this->setEnvironmentCommand() . ' vagrant ssh -c "'.$command.'"'); } protected function setEnvironmentCommand() { if ($this->isWindows()) { return 'SET VAGRANT_DOTFILE_PATH='.$_ENV['VAGRANT_DOTFILE_PATH'].' &&'; } return 'VAGRANT_DOTFILE_PATH="'.$_ENV['VAGRANT_DOTFILE_PATH'].'"'; } protected function isWindows() { return strpos(strtoupper(PHP_OS), 'WIN') === 0; } }