* @package PHPCI * @subpackage Console */ class RebuildCommand extends Command { /** * @var Logger */ protected $logger; /** * @var OutputInterface */ protected $output; /** * @var boolean */ protected $run; /** * @var int */ protected $sleep; /** * @param \Monolog\Logger $logger * @param string $name */ public function __construct(Logger $logger, $name = null) { parent::__construct($name); $this->logger = $logger; } protected function configure() { $this ->setName('php-censor:rebuild') ->setDescription('Re-runs the last run build.'); } /** * Loops through running. */ protected function execute(InputInterface $input, OutputInterface $output) { $runner = new RunCommand($this->logger); $runner->setMaxBuilds(1); /** @var \PHPCensor\Store\BuildStore $store */ $store = Factory::getStore('Build'); $service = new BuildService($store); $builds = $store->getLatestBuilds(null, 1); $lastBuild = array_shift($builds); $service->createDuplicateBuild($lastBuild); $runner->run(new ArgvInput([]), $output); } /** * Called when log entries are made in Builder / the plugins. * * @see \PHPCensor\Builder::log() */ public function logCallback($log) { $this->output->writeln($log); } }