Completed
Push — master ( 9dafa0...cbdfb4 )
by R.Kukuh
07:13 queued 02:15
created

LaravelPackages::installWink()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace BukanKalengKaleng\LaravelPackages\Console\Commands;
4
5
use Illuminate\Console\Command;
6
7
class LaravelPackages extends Command
8
{
9
    /**
10
     * The name and signature of the console command.
11
     *
12
     * @var string
13
     */
14
    protected $signature = 'laravel-packages:install';
15
16
    /**
17
     * The console command description.
18
     *
19
     * @var string
20
     */
21
    protected $description = 'Publish all vendor files, Install other packages, and rebuild DB schema';
22
23
    /**
24
     * Create a new command instance.
25
     *
26
     * @return void
27
     */
28
    public function __construct()
29
    {
30
        parent::__construct();
31
    }
32
33
    /**
34
     * Execute the console command.
35
     *
36
     * @return mixed
37
     */
38
    public function handle()
39
    {
40
        $this->line('');
41
42
        $this->publishAllVendorFiles();
43
        $this->line('');
44
45
        $this->installLaravelDusk();
46
        $this->line('');
47
48
        $this->installLaravelHorizon();
49
        $this->line('');
50
51
        $this->installLaravelTelescope();
52
        $this->line('');
53
54
        $this->rebuildDatabaseSchema();
55
        $this->line('');
56
57
        $this->installLaravelPassport();
58
        $this->line('');
59
60
        $this->installWink();
61
        $this->line('');
62
63
        $this->printReport();
64
        $this->line('');
65
    }
66
67
    /**
68
     * Publish all vendor files
69
     *
70
     * @return void
71
     */
72
    protected function publishAllVendorFiles()
73
    {
74
        $this->info('[START] Publishing all vendor files..........');
75
76
        $this->call('vendor:publish', ['--all' => true]);
77
78
        $this->info('[DONE ] Publishing all vendor files.');
79
    }
80
81
    /**
82
     * Install Laravel Dusk
83
     *
84
     * @return void
85
     */
86
    protected function installLaravelDusk()
87
    {
88
        $this->info('[START] Laravel Dusk installation..........');
89
90
        $this->call('dusk:install');
91
92
        $this->info('[DONE ] Laravel Dusk installation.');
93
    }
94
95
    /**
96
     * Install Laravel Horizon
97
     *
98
     * @return void
99
     */
100
    protected function installLaravelHorizon()
101
    {
102
        $this->info('[START] Laravel Horizon installation..........');
103
104
        $this->call('horizon:install');
105
        $this->call('queue:failed-table');
106
107
        $this->info('[DONE ] Laravel Horizon installation.');
108
    }
109
110
    /**
111
     * Install Laravel Passport
112
     *
113
     * @return void
114
     */
115
    protected function installLaravelPassport()
116
    {
117
        $this->info('[START] Laravel Passport installation..........');
118
119
        $this->call('passport:install', ['--force' => true]);
120
121
        $this->info('[DONE ] Laravel Passport installation.');
122
    }
123
124
    /**
125
     * Install Laravel Telescope
126
     *
127
     * @return void
128
     */
129
    protected function installLaravelTelescope()
130
    {
131
        $this->info('[START] Laravel Telescope installation..........');
132
133
        $this->call('telescope:install');
134
135
        $this->info('[DONE ] Laravel Telescope installation.');
136
    }
137
138
    /**
139
     * Install Wink
140
     *
141
     * @return void
142
     */
143
    protected function installWink()
144
    {
145
        $this->info('[START] Wink installation..........');
146
147
        $this->call('wink:install');
148
149
        $this->info('[DONE ] Wink installation.');
150
    }
151
152
    /**
153
     * Rebuild database schema
154
     *
155
     * @return void
156
     */
157
    protected function rebuildDatabaseSchema()
158
    {
159
        $this->info('[START] Rebuild database schema..........');
160
161
        $this->call('migrate:fresh');
162
163
        $this->info('[DONE ] Rebuild database schema.');
164
    }
165
166
    protected function printReport()
167
    {
168
        $this->info('***** INFORMATION *****');
169
        $this->line('1. You may start Laravel Horizon using: "php artisan horizon"');
170
        $this->line('2. You may start Websockets server using: "php artisan websockets:serve"');
171
        $this->line('3. You may create Laravel Passport\'s client using: "php artisan passport:client"');
172
        $this->line('4. A premium license is required to be able to use DataTables Editor library');
173
        $this->line('5. Laravel Notification channels: http://laravel-notification-channels.com');
174
        $this->line('6. Laravel Socialite providers: https://socialiteproviders.github.io/providers/digital-ocean.html');
175
    }
176
}
177