siteAlias = $siteAlias; } /** * @inheritdoc */ public function configure(SiteProcess $process) { $this->tty = $process->isTty(); } /** * inheritdoc */ public function wrap($args) { $transport = ['vagrant', 'ssh']; $transportOptions = $this->getTransportOptions(); $commandToExecute = $this->getCommandToExecute($args); return array_merge( $transport, $transportOptions, ['-c'], $commandToExecute ); } /** * @inheritdoc */ public function addChdir($cd_remote, $args) { return array_merge( [ 'cd', $cd_remote, Shell::op('&&'), ], $args ); } /** * getTransportOptions returns the transport options for the tranport * mechanism itself */ protected function getTransportOptions() { return $this->tty ? ['-t'] : []; } /** * getCommandToExecute processes the arguments for the command to * be executed such that they are appropriate for the transport mechanism. */ protected function getCommandToExecute($args) { // Escape each argument for the target system and then join $args = Escape::argsForSite($this->siteAlias, $args); $commandToExecute = implode(' ', $args); return [$commandToExecute]; } }