Code Duplication    Length = 49-49 lines in 2 locations

src/Magestead/Command/Index/SetModeCommand.php 1 location

@@ 14-62 (lines=49) @@
11
 * Class SetModeCommand
12
 * @package Magestead\Command\Index
13
 */
14
class SetModeCommand extends Command
15
{
16
    protected $_config;
17
    protected $_projectPath;
18
19
    protected function configure()
20
    {
21
        $this->_projectPath = getcwd();
22
        $this->setName("index:mode:set");
23
        $this->setDescription("Set index mode type");
24
        $this->addArgument('mode', InputArgument::REQUIRED, '{realtime|schedule} [indexer]');
25
    }
26
27
    /**
28
     * @param InputInterface $input
29
     * @param OutputInterface $output
30
     * @return ProcessCommand|null
31
     */
32
    protected function execute(InputInterface $input, OutputInterface $output)
33
    {
34
        $indexMode = $input->getArgument('mode');
35
        $command   = $this->getCommand(new Config($output), $indexMode);
36
        if ($command) {
37
            $output->writeln('<info>Setting index mode</info>');
38
            $pCommand = "vagrant ssh -c '". $command ."'";
39
            return new ProcessCommand($pCommand, $this->_projectPath, $output);
40
        }
41
42
        $output->writeln('<error>Command not available for this application</error>');
43
    }
44
45
    /**
46
     * @param Config $config
47
     * @param $mode
48
     * @return bool|string
49
     */
50
    protected function getCommand(Config $config, $mode)
51
    {
52
        $type = $config->type;
53
        switch ($type) {
54
            case 'magento2':
55
                return "cd /var/www/public;bin/magento indexer:set-mode $mode";
56
                break;
57
        }
58
59
        return false;
60
    }
61
}

src/Magestead/Command/Index/ShowModeCommand.php 1 location

@@ 14-62 (lines=49) @@
11
 * Class ShowModeCommand
12
 * @package Magestead\Command\Index
13
 */
14
class ShowModeCommand extends Command
15
{
16
    protected $_config;
17
    protected $_projectPath;
18
19
    protected function configure()
20
    {
21
        $this->_projectPath = getcwd();
22
        $this->setName("index:mode:show");
23
        $this->setDescription("Show index mode");
24
        $this->addArgument('index', InputArgument::OPTIONAL, '[indexer]');
25
    }
26
27
    /**
28
     * @param InputInterface $input
29
     * @param OutputInterface $output
30
     * @return ProcessCommand|null
31
     */
32
    protected function execute(InputInterface $input, OutputInterface $output)
33
    {
34
        $index = $input->getArgument('index');
35
36
        $command = $this->getCommand(new Config($output), $index);
37
        if ($command) {
38
            $output->writeln('<info>Getting index mode</info>');
39
            $passedCommand = "vagrant ssh -c '". $command ."'";
40
            return new ProcessCommand($passedCommand, $this->_projectPath, $output);
41
        }
42
43
        $output->writeln('<error>Command not available for this application</error>');
44
    }
45
46
    /**
47
     * @param Config $config
48
     * @param $index
49
     * @return bool|string
50
     */
51
    protected function getCommand(Config $config, $index)
52
    {
53
        $type = $config->type;
54
        switch ($type) {
55
            case 'magento2':
56
                return "cd /var/www/public;bin/magento indexer:show-mode $index";
57
                break;
58
        }
59
60
        return false;
61
    }
62
}