/** * {@inheritDoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $this->logger = new ConsoleLogger($output); $information = new ComposerInformation(dirname($input->getArgument('composer'))); $processor = new Processor(); $configuration = new Configuration(); $processed = $processor->processConfiguration($configuration, $this->loadConfiguration($input->getArgument('file'))); $baseParameters = []; if (isset($processed['parameters'])) { $baseParameters = $processed['parameters']; unset($processed['parameters']); } $processedConfig = new ConfigurationValues($processed, $this->collectParameters($information, $baseParameters)); $this->buildTasks($processedConfig); $this->buildFilters($processedConfig); $project = new Project($processedConfig, $this->buildFilters($processedConfig), $information); $this->compile($project); $project->finalize(); unset($project); $this->logger->notice('All done.'); }