9 use Symfony\Component\Console\Command\Command;
10 use Symfony\Component\Console\Input\InputInterface;
11 use Symfony\Component\Console\Input\InputOption;
12 use Symfony\Component\Console\Output\OutputInterface;
14 use Symfony\Component\Console\Input\ArrayInput;
15 use Symfony\Component\Console\Input\ArrayInputFactory;
18 use Composer\Console\Application;
19 use Composer\Console\ApplicationFactory;
36 private $sampleDataDependency;
42 private $arrayInputFactory;
47 private $applicationFactory;
58 ArrayInputFactory $arrayInputFactory,
59 ApplicationFactory $applicationFactory
62 $this->sampleDataDependency = $sampleDataDependency;
63 $this->arrayInputFactory = $arrayInputFactory;
64 $this->applicationFactory = $applicationFactory;
65 parent::__construct();
73 $this->setName(
'sampledata:remove')
74 ->setDescription(
'Remove all sample data packages from composer.json');
76 self::OPTION_NO_UPDATE,
78 InputOption::VALUE_NONE,
79 'Update composer.json without executing composer update' 87 protected function execute(InputInterface $input, OutputInterface
$output)
89 $sampleDataPackages = $this->sampleDataDependency->getSampleDataPackages();
90 if (!empty($sampleDataPackages)) {
92 $commonArgs = [
'--working-dir' =>
$baseDir,
'--no-interaction' => 1,
'--no-progress' => 1];
93 if ($input->getOption(self::OPTION_NO_UPDATE)) {
94 $commonArgs[
'--no-update'] = 1;
96 $packages = array_keys($sampleDataPackages);
97 $arguments = array_merge([
'command' =>
'remove',
'packages' => $packages], $commonArgs);
105 $output->writeln(
'<info>' .
'There is an error during remove sample data.' .
'</info>');
108 $output->writeln(
'<info>' .
'There is no sample data for current set of modules.' .
'</info>');
__construct(Filesystem $filesystem, Dependency $sampleDataDependency, ArrayInputFactory $arrayInputFactory, ApplicationFactory $applicationFactory)