authserver/homestead/src/RunCommand.php
author rougeronj
Tue, 08 Sep 2015 10:31:21 +0200
changeset 100 f61bab1a115d
parent 8 5a0cbbe0922a
permissions -rw-r--r--
update included styles
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     1
<?php namespace Laravel\Homestead;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     2
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     3
use Symfony\Component\Process\Process;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     4
use Symfony\Component\Console\Command\Command;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     5
use Symfony\Component\Console\Input\InputArgument;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     6
use Symfony\Component\Console\Input\InputInterface;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     7
use Symfony\Component\Console\Output\OutputInterface;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     8
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
     9
class RunCommand extends Command {
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    10
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    11
	/**
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    12
	 * Configure the command options.
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    13
	 *
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    14
	 * @return void
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    15
	 */
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    16
	protected function configure()
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    17
	{
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    18
		$this
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    19
			->setName('run')
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    20
			->setDescription('Run commands through the Homestead machine via SSH')
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    21
			->addArgument('ssh-command', InputArgument::REQUIRED, 'The command to pass through to the virtual machine.');
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    22
}
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    23
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    24
	/**
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    25
	 * Execute the command.
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    26
	 *
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    27
	 * @param  \Symfony\Component\Console\Input\InputInterface  $input
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    28
	 * @param  \Symfony\Component\Console\Output\OutputInterface  $output
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    29
	 * @return void
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    30
	 */
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    31
	public function execute(InputInterface $input, OutputInterface $output)
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    32
	{
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    33
		chdir(__DIR__.'/../');
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    34
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    35
		$command = $input->getArgument('ssh-command');
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    36
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    37
		passthru($this->setEnvironmentCommand() . ' vagrant ssh -c "'.$command.'"');
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    38
	}
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    39
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    40
	protected function setEnvironmentCommand()
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    41
	{
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    42
		if ($this->isWindows()) {
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    43
			return 'SET VAGRANT_DOTFILE_PATH='.$_ENV['VAGRANT_DOTFILE_PATH'].' &&';
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    44
		}
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    45
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    46
		return 'VAGRANT_DOTFILE_PATH="'.$_ENV['VAGRANT_DOTFILE_PATH'].'"';
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    47
	}
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    48
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    49
	protected function isWindows()
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    50
	{
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    51
		return strpos(strtoupper(PHP_OS), 'WIN') === 0;
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    52
	}
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    53
	
5a0cbbe0922a CAS Authentication (normal and proxy) + local Homestead vm
durandn
parents:
diff changeset
    54
}