Code Duplication    Length = 75-76 lines in 2 locations

src/Commands/DisableCommand.php 1 location

@@ 9-83 (lines=75) @@
6
use Nwidart\Modules\Module;
7
use Symfony\Component\Console\Input\InputArgument;
8
9
class DisableCommand extends Command
10
{
11
    /**
12
     * The console command name.
13
     *
14
     * @var string
15
     */
16
    protected $name = 'module:disable';
17
18
    /**
19
     * The console command description.
20
     *
21
     * @var string
22
     */
23
    protected $description = 'Disable the specified module.';
24
25
    /**
26
     * Execute the console command.
27
     */
28
    public function handle() : int
29
    {
30
        /**
31
         * check if user entred an argument
32
         */
33
        if ($this->argument('module') === null) {
34
            $this->disableAll();
35
        }
36
37
        /** @var Module $module */
38
        $module = $this->laravel['modules']->findOrFail($this->argument('module'));
39
40
        if ($module->isEnabled()) {
41
            $module->disable();
42
43
            $this->info("Module [{$module}] disabled successful.");
44
        } else {
45
            $this->comment("Module [{$module}] has already disabled.");
46
        }
47
48
        return 0;
49
    }
50
51
    /**
52
     * disableAll
53
     *
54
     * @return void
55
     */
56
    public function disableAll()
57
    {
58
        /** @var Modules $modules */
59
        $modules = $this->laravel['modules']->all();
60
61
        foreach ($modules as $module) {
62
            if ($module->isEnabled()) {
63
                $module->disable();
64
65
                $this->info("Module [{$module}] disabled successful.");
66
            } else {
67
                $this->comment("Module [{$module}] has already disabled.");
68
            }
69
        }
70
    }
71
72
    /**
73
     * Get the console command arguments.
74
     *
75
     * @return array
76
     */
77
    protected function getArguments()
78
    {
79
        return [
80
            ['module', InputArgument::OPTIONAL, 'Module name.'],
81
        ];
82
    }
83
}
84

src/Commands/EnableCommand.php 1 location

@@ 9-84 (lines=76) @@
6
use Nwidart\Modules\Module;
7
use Symfony\Component\Console\Input\InputArgument;
8
9
class EnableCommand extends Command
10
{
11
    /**
12
     * The console command name.
13
     *
14
     * @var string
15
     */
16
    protected $name = 'module:enable';
17
18
    /**
19
     * The console command description.
20
     *
21
     * @var string
22
     */
23
    protected $description = 'Enable the specified module.';
24
25
    /**
26
     * Execute the console command.
27
     */
28
    public function handle() : int
29
    {
30
        /**
31
         * check if user entred an argument
32
         */
33
        if ($this->argument('module') === null) {
34
            $this->enableAll();
35
            return 0;
36
        }
37
38
        /** @var Module $module */
39
        $module = $this->laravel['modules']->findOrFail($this->argument('module'));
40
41
        if ($module->isDisabled()) {
42
            $module->enable();
43
44
            $this->info("Module [{$module}] enabled successful.");
45
        } else {
46
            $this->comment("Module [{$module}] has already enabled.");
47
        }
48
49
        return 0;
50
    }
51
52
    /**
53
     * enableAll
54
     *
55
     * @return void
56
     */
57
    public function enableAll()
58
    {
59
        /** @var Modules $modules */
60
        $modules = $this->laravel['modules']->all();
61
62
        foreach ($modules as $module) {
63
            if ($module->isDisabled()) {
64
                $module->enable();
65
66
                $this->info("Module [{$module}] enabled successful.");
67
            } else {
68
                $this->comment("Module [{$module}] has already enabled.");
69
            }
70
        }
71
    }
72
73
    /**
74
     * Get the console command arguments.
75
     *
76
     * @return array
77
     */
78
    protected function getArguments()
79
    {
80
        return [
81
            ['module', InputArgument::OPTIONAL, 'Module name.'],
82
        ];
83
    }
84
}
85