public function onEvent(Event $event, $eventName, EventDispatcherInterface $eventDispatcher)
    {
        if (in_array($eventName, $this->events)) {
            if ($event instanceof ReleaseEvent) {
                $release = $event->getRelease();

                $host = $release->getWorkspace()->getHost();
                $path = $release->getPath();
            } else {
                $host = $event->getWorkspace()->getHost();
                $path = $host->getPath();
            }

            $connection = $this->ensureConnection($host);

            $currentWorkingDirectory = $connection->getWorkingDirectory();

            $eventDispatcher->dispatch(AccompliEvents::LOG, new LogEvent(LogLevel::NOTICE, 'Executing command "{command}".', $eventName, $this, array('command' => $this->command, 'event.task.action' => TaskInterface::ACTION_IN_PROGRESS)));

            $connection->changeWorkingDirectory($path);
            $result = $connection->executeCommand($this->command, $this->arguments);
            $connection->changeWorkingDirectory($currentWorkingDirectory);

            if ($result->isSuccessful()) {
                $eventDispatcher->dispatch(AccompliEvents::LOG, new LogEvent(LogLevel::NOTICE, 'Executed command "{command}".', $eventName, $this, array('command' => $this->command, 'event.task.action' => TaskInterface::ACTION_COMPLETED, 'output.resetLine' => true)));
                $eventDispatcher->dispatch(AccompliEvents::LOG, new LogEvent(LogLevel::DEBUG, "{separator} Command output:{separator}\n{command.result}{separator}", $eventName, $this, array('command.result' => $result->getOutput(), 'separator' => "\n=================\n")));
            } else {
                throw new TaskCommandExecutionException(sprintf('Failed executing command "%s".', $this->command), $result, $this);
            }
        }
    }
public function onEvent(Event $event, $eventName, EventDispatcherInterface $eventDispatcher)
    {
        if (in_array($eventName, $this->events)) {
            if ($event instanceof ReleaseEvent) {
                $release = $event->getRelease();

                $host = $release->getWorkspace()->getHost();
                $path = $release->getPath();
            } else {
                $host = $event->getWorkspace()->getHost();
                $path = $host->getPath();
            }

            $connection = $this->ensureConnection($host);

            $currentWorkingDirectory = $connection->getWorkingDirectory();

            $eventDispatcher->dispatch(AccompliEvents::LOG, new LogEvent(LogLevel::NOTICE, 'Executing command "{command}".', $eventName, $this, array('command' => $this->command, 'event.task.action' => TaskInterface::ACTION_IN_PROGRESS)));

            $connection->changeWorkingDirectory($path);
            $result = $connection->executeCommand($this->command, $this->arguments);
            $connection->changeWorkingDirectory($currentWorkingDirectory);

            if ($result->isSuccessful()) {
                $eventDispatcher->dispatch(AccompliEvents::LOG, new LogEvent(LogLevel::NOTICE, 'Executed command "{command}".', $eventName, $this, array('command' => $this->command, 'event.task.action' => TaskInterface::ACTION_COMPLETED, 'output.resetLine' => true)));
                $eventDispatcher->dispatch(AccompliEvents::LOG, new LogEvent(LogLevel::DEBUG, "{separator} Command output:{separator}\n{command.result}{separator}", $eventName, $this, array('command.result' => $result->getOutput(), 'separator' => "\n=================\n")));
            } else {
                throw new TaskCommandExecutionException(sprintf('Failed executing command "%s".', $this->command), $result, $this);
            }
        }
    }
public function onEvent ( Event $ event , $ eventName , EventDispatcherInterface $ eventDispatcher ) { if ( in_array ( $ eventName , $ this -> events ) ) { if ( $ event instanceof ReleaseEvent ) { $ release = $ event -> getRelease ( ) ; $ host = $ release -> getWorkspace ( ) -> getHost ( ) ; $ path = $ release -> getPath ( ) ; } else { $ host = $ event -> getWorkspace ( ) -> getHost ( ) ; $ path = $ host -> getPath ( ) ; } $ connection = $ this -> ensureConnection ( $ host ) ; $ currentWorkingDirectory = $ connection -> getWorkingDirectory ( ) ; $ eventDispatcher -> dispatch ( AccompliEvents :: LOG , new LogEvent ( LogLevel :: NOTICE , 'Executing command "{command}".' , $ eventName , $ this , array ( 'command' => $ this -> command , 'event.task.action' => TaskInterface :: ACTION_IN_PROGRESS ) ) ) ; $ connection -> changeWorkingDirectory ( $ path ) ; $ result = $ connection -> executeCommand ( $ this -> command , $ this -> arguments ) ; $ connection -> changeWorkingDirectory ( $ currentWorkingDirectory ) ; if ( $ result -> isSuccessful ( ) ) { $ eventDispatcher -> dispatch ( AccompliEvents :: LOG , new LogEvent ( LogLevel :: NOTICE , 'Executed command "{command}".' , $ eventName , $ this , array ( 'command' => $ this -> command , 'event.task.action' => TaskInterface :: ACTION_COMPLETED , 'output.resetLine' => true ) ) ) ; $ eventDispatcher -> dispatch ( AccompliEvents :: LOG , new LogEvent ( LogLevel :: DEBUG , "{separator} Command output:{separator}\n{command.result}{separator}" , $ eventName , $ this , array ( 'command.result' => $ result -> getOutput ( ) , 'separator' => "\n=================\n" ) ) ) ; } else { throw new TaskCommandExecutionException ( sprintf ( 'Failed executing command "%s".' , $ this -> command ) , $ result , $ this ) ; } } }
Executes the configured command.

@param Event                    $event
@param string                   $eventName
@param EventDispatcherInterface $eventDispatcher

@throws TaskRuntimeException when execution of the command has failed.
Executes the configured command .