/** * @param InputInterface $input * @param OutputInterface $output * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $satisFile = $input->getArgument('satis'); if (false === file_exists($satisFile)) { throw new \InvalidArgumentException(sprintf('required file does not exists: "%s"', $satisFile), 1446115325); } $composerFile = $input->getArgument('composer'); if (false === file_exists($composerFile)) { throw new \InvalidArgumentException(sprintf('required file does not exists: "%s"', $composerFile), 1446115336); } $satis = json_decode(file_get_contents($satisFile)); if (json_last_error() !== JSON_ERROR_NONE) { throw new \RuntimeException(sprintf('An error has occurred while decoding "%s". Error code: %s. Error message: "%s".', $satisFile, json_last_error(), json_last_error_msg()), 1447257223); } $composer = json_decode(file_get_contents($composerFile)); if (json_last_error() !== JSON_ERROR_NONE) { throw new \RuntimeException(sprintf('An error has occurred while decoding "%s". Error code: %s. Error message: "%s".', $composerFile, json_last_error(), json_last_error_msg()), 1447257260); } $builder = new SatisBuilder($composer, $satis); if ($input->getOption('reset-requirements')) { $builder->resetSatisRequires(); } if ($input->getOption('require-dependencies')) { $builder->setRequireDependencies($input->getOption('require-dependencies')); } if ($input->getOption('require-dev-dependencies')) { $builder->setRequireDevDependencies($input->getOption('require-dependencies')); } if ($input->getOption('add-requirements')) { $builder->addRequiresFromComposer(); } if ($input->getOption('add-dev-requirements')) { $builder->addDevRequiresFromComposer(); } file_put_contents($satisFile, json_encode($builder->build(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); }
/** * @test */ public function shouldNotRequireDevDependencies() { $composer = $this->getFixture('composer.multiple.json'); $satis = new \stdClass(); $builder = new SatisBuilder($composer, $satis); $builder->setRequireDevDependencies(false); $this->assertFalse($builder->build()->{'require-dev-dependencies'}); }