public function execute()
{
$releases = $this->releasesManager->getReleases();
// Get previous release
$rollbackRelease = $this->getRollbackRelease();
if (!$rollbackRelease) {
return $this->explainer->error('Rocketeer could not rollback as no releases have yet been deployed');
}
// If no release specified, display the available ones
if ($this->command->option('list')) {
$this->displayReleases();
// Get actual release name from date
$rollbackRelease = $this->command->askWith('Which one do you want to go back to ?', 0);
$rollbackRelease = $releases[$rollbackRelease];
}
// Check if release actually exists
if (!in_array($rollbackRelease, $releases, true)) {
return $this->explainer->error('Unable to find release:' . $rollbackRelease);
}
// Rollback release
$this->updateSymlink($rollbackRelease);
return $this->explainer->success('Rolling back to release ' . $rollbackRelease);
}