protected function execute(InputInterface $input, OutputInterface $output)
{
try {
$this->checkInstallerVersion()->checkProjectName()->checkPermissions()->download()->extract()->cleanUp()->updateComposerConfig()->createGitIgnore()->checkSymfonyRequirements()->displayInstallationResult();
} catch (AbortException $e) {
aborted:
$output->writeln('');
$output->writeln('<error>Aborting download and cleaning up temporary directories.</>');
$this->cleanUp();
return 1;
} catch (\Exception $e) {
// Guzzle can wrap the AbortException in a GuzzleException
if ($e->getPrevious() instanceof AbortException) {
goto aborted;
}
$this->cleanUp();
throw $e;
}
}