Code Duplication    Length = 74-75 lines in 2 locations

src/IPub/Packages/Commands/DisableCommand.php 1 location

@@ 36-109 (lines=74) @@
33
 * @author         Josef Kříž <[email protected]>
34
 * @author         Adam Kadlec <[email protected]>
35
 */
36
class DisableCommand extends Command
37
{
38
	/**
39
	 * @return void
40
	 */
41
	protected function configure()
42
	{
43
		$this
44
			->setName('ipub:packages:disable')
45
			->addArgument('package', Input\InputArgument::REQUIRED, 'Package name')
46
			->addOption('noconfirm', NULL, Input\InputOption::VALUE_NONE, 'do not ask for any confirmation')
47
			->setDescription('Disable package.');
48
	}
49
50
	/**
51
	 * @param Input\InputInterface $input
52
	 * @param Output\OutputInterface $output
53
	 *
54
	 * @return void
55
	 */
56
	protected function execute(Input\InputInterface $input, Output\OutputInterface $output)
57
	{
58
		// Register available
59
		foreach ($this->packageManager->registerAvailable() as $item) {
60
			foreach ($item as $name => $action) {
61
				$output->writeln(sprintf('<info>%s : %s</info>', $action, $name));
62
			}
63
		}
64
65
		$package = $this->repository->findPackage($input->getArgument('package'));
66
67
		try {
68
			$problem = $this->packageManager->testDisable($package);
69
70
		} catch (Exceptions\InvalidArgumentException $e) {
71
			$output->writeln(sprintf('<error>%s</error>', $e->getMessage()));
72
73
			return;
74
		}
75
76
		if (!$input->getOption('noconfirm') && count($problem->getSolutions()) > 0) {
77
			foreach ($problem->getSolutions() as $job) {
78
				$output->writeln(sprintf('<info>%s : %s</info>', $job->getAction(), $job->getPackage()->getName()));
79
			}
80
81
			$output->writeln(sprintf('<info>disabling : %s</info>', $package->getName()));
82
83
			$dialog = $this->getHelperSet()->get('dialog');
84
			if (!$dialog->askConfirmation($output, '<question>Continue with this actions? [y/N]</question> ', FALSE)) {
85
				return;
86
			}
87
		}
88
89
		try {
90
			foreach ($problem->getSolutions() as $job) {
91
				if ($job->getAction() === DependencyResolver\Job::ACTION_ENABLE) {
92
					$this->packageManager->disable($job->getPackage());
93
					$output->writeln(sprintf('Package \'%s\' has been enabled.', $job->getPackage()->getName()));
94
95
				} elseif ($job->getAction() === DependencyResolver\Job::ACTION_DISABLE) {
96
					$this->packageManager->enable($job->getPackage());
97
					$output->writeln(sprintf('Package \'%s\' has been disabled.', $job->getPackage()->getName()));
98
99
				}
100
			}
101
102
			$this->packageManager->disable($package);
103
			$output->writeln(sprintf('Package \'%s\' has been disabled.', $input->getArgument('package')));
104
105
		} catch (Exceptions\InvalidArgumentException $e) {
106
			$output->writeln(sprintf('<error>%s</error>', $e->getMessage()));
107
		}
108
	}
109
}
110

src/IPub/Packages/Commands/EnableCommand.php 1 location

@@ 36-110 (lines=75) @@
33
 * @author         Josef Kříž <[email protected]>
34
 * @author         Adam Kadlec <[email protected]>
35
 */
36
final class EnableCommand extends Command
37
{
38
	/**
39
	 * @return void
40
	 */
41
	protected function configure()
42
	{
43
		$this
44
			->setName('ipub:packages:enable')
45
			->addArgument('package', Input\InputArgument::REQUIRED, 'Package name')
46
			->addOption('noconfirm', NULL, Input\InputOption::VALUE_NONE, 'do not ask for any confirmation')
47
			->setDescription('Enable package.');
48
	}
49
50
	/**
51
	 * @param Input\InputInterface $input
52
	 * @param Output\OutputInterface $output
53
	 * 
54
	 * @return void
55
	 */
56
	protected function execute(Input\InputInterface $input, Output\OutputInterface $output)
57
	{
58
		// Register available
59
		foreach ($this->packageManager->registerAvailable() as $item) {
60
			foreach ($item as $name => $action) {
61
				$output->writeln(sprintf('<info>%s : %s</info>', $action, $name));
62
			}
63
		}
64
65
		$package = $this->repository->findPackage($input->getArgument('package'));
66
67
		try {
68
			$problem = $this->packageManager->testEnable($package);
69
70
		} catch (Exceptions\InvalidArgumentException $e) {
71
			$output->writeln(sprintf('<error>%s</error>', $e->getMessage()));
72
73
			return;
74
		}
75
76
		if (!$input->getOption('noconfirm') && count($problem->getSolutions()) > 0) {
77
			$output->writeln(sprintf('<info>enabling : %s</info>', $package->getName()));
78
79
			foreach ($problem->getSolutions() as $job) {
80
				$output->writeln(sprintf('<info>%s : %s</info>', $job->getAction(), $job->getPackage()->getName()));
81
			}
82
83
			$dialog = $this->getHelperSet()->get('dialog');
84
85
			if (!$dialog->askConfirmation($output, '<question>Continue with this actions? [y/N]</question> ', FALSE)) {
86
				return;
87
			}
88
		}
89
90
		try {
91
			foreach ($problem->getSolutions() as $job) {
92
				if ($job->getAction() === DependencyResolver\Job::ACTION_ENABLE) {
93
					$this->packageManager->enable($job->getPackage());
94
					$output->writeln(sprintf('Package \'%s\' has been enabled.', $job->getPackage()->getName()));
95
96
				} elseif ($job->getAction() === DependencyResolver\Job::ACTION_DISABLE) {
97
					$this->packageManager->disable($job->getPackage());
98
					$output->writeln(sprintf('Package \'%s\' has been disabled.', $job->getPackage()->getName()));
99
				}
100
			}
101
102
			$this->packageManager->enable($package);
103
104
			$output->writeln(sprintf('Package \'%s\' has been enabled.', $input->getArgument('package')));
105
106
		} catch (Exceptions\InvalidArgumentException $e) {
107
			$output->writeln(sprintf('<error>%s</error>', $e->getMessage()));
108
		}
109
	}
110
}
111