src/ConsoleCommands/RollbackCommand.php
<?php
/**
* @author hollodotme
*/
namespace CodeClimate\PhpTestReporter\ConsoleCommands;
use CodeClimate\PhpTestReporter\Constants\PharTool;
use Humbug\SelfUpdate\Strategy\GithubStrategy;
use Humbug\SelfUpdate\Updater;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Logger\ConsoleLogger;
use Symfony\Component\Console\Output\OutputInterface;
/**
* Class RollbackCommand
* @package CodeClimate\PhpTestReporter\ConsoleCommands
*/
class RollbackCommand extends Command
{
protected function configure()
{
$this->setDescription('Rolls back this PHAR to the previous version.');
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$input->validate();
$logger = new ConsoleLogger($output);
$updater = new Updater(null, false, Updater::STRATEGY_GITHUB);
/** @var GithubStrategy $strategy */
$strategy = $updater->getStrategy();
$strategy->setPackageName(PharTool::PACKAGE_NAME);
$strategy->setPharName(PharTool::PHAR_NAME);
$strategy->setCurrentLocalVersion('@package_version@');
if ($updater->rollback()) {
$logger->info('Roll back successful!');
} else {
$logger->alert('Roll back failed.');
}
return 0;
}
}