Repository navigation
Expand file tree
/
Copy pathPlugin.php
More file actions
75 lines (68 loc) · 2.84 KB
/
Copy pathPlugin.php
File metadata and controls
75 lines (68 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
namespace App\Vito\Plugins\Vitodeploy\LaravelReverbPlugin;
use App\DTOs\DynamicField;
use App\DTOs\DynamicForm;
use App\Plugins\AbstractPlugin;
use App\Plugins\RegisterSiteFeature;
use App\Plugins\RegisterSiteFeatureAction;
use App\Plugins\RegisterSiteType;
use App\Plugins\RegisterViews;
use App\Vito\Plugins\Vitodeploy\LaravelReverbPlugin\Actions\Disable;
use App\Vito\Plugins\Vitodeploy\LaravelReverbPlugin\Actions\Enable;
use App\Vito\Plugins\Vitodeploy\LaravelReverbPlugin\SiteTypes\LaravelReverb;
class Plugin extends AbstractPlugin
{
protected string $name = 'Laravel Reverb Plugin';
protected string $description = 'Laravel Reverb plugin for VitoDeploy';
public function boot(): void
{
RegisterViews::make('vitodeploy-reverb')
->path(__DIR__.'/views')
->register();
// Site feature
RegisterSiteFeature::make('laravel', 'laravel-reverb')
->label('Laravel Reverb')
->description('Enable Laravel Reverb for this site')
->register();
RegisterSiteFeatureAction::make('laravel', 'laravel-reverb', 'enable')
->label('Enable')
->handler(Enable::class)
->register();
RegisterSiteFeatureAction::make('laravel', 'laravel-reverb', 'disable')
->label('Disable')
->handler(Disable::class)
->register();
// Site type
RegisterSiteType::make(LaravelReverb::id())
->label('Laravel Reverb')
->handler(LaravelReverb::class)
->form(DynamicForm::make([
DynamicField::make('source_control')
->component()
->label('Source Control'),
DynamicField::make('port_alert')
->alert()
->options(['type' => 'warning'])
->description('Make sure this port is not used by any other service on the server.'),
DynamicField::make('port')
->text()
->description('This is the port reverb will run on the server. This port is not exposed to internet!')
->default(8080),
DynamicField::make('repository')
->text()
->label('Repository')
->placeholder('organization/repository')
->description('Your Laravel project that has Reverb instaleld on'),
DynamicField::make('branch')
->text()
->label('Branch')
->default('main'),
DynamicField::make('command')
->text()
->label('Command')
->default('php artisan reverb:start')
->description('The command to start Laravel Reverb'),
]))
->register();
}
}