/** * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output */ protected function initialize(InputInterface $input, OutputInterface $output) { parent::initialize($input, $output); $configPath = $input->getOption('config'); $this->config = $configPath ? Configuration::fromFile($configPath) : Configuration::defaults('php-semver-checker'); $inputMerger = new InputMerger(); $inputMerger->merge($input, $this->config); // Set overrides LevelMapping::setOverrides($this->config->getLevelMapping()); }
/** * @param \Symfony\Component\Console\Input\InputInterface $input * @param \PHPSemVerChecker\Configuration\Configuration $config */ public function merge(InputInterface $input, Configuration $config) { foreach ($input->getArguments() as $argument => $value) { if ($input->hasArgumentSet($argument)) { $config->set($argument, $value); } else { $input->setArgument($argument, $config->get($argument)); } } foreach ($input->getOptions() as $option => $value) { if ($input->hasOptionSet($option)) { $config->set($option, $value); } else { $input->setOption($option, $config->get($option)); } } }