AcachaForgePublishServiceProvider::publishConfig()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace Acacha\ForgePublish\Providers;
4
5
use Acacha\ForgePublish\Commands\Publish;
6
use Acacha\ForgePublish\Commands\PublishArtisan;
7
use Acacha\ForgePublish\Commands\PublishAssignment;
8
use Acacha\ForgePublish\Commands\PublishAssignmentGroups;
9
use Acacha\ForgePublish\Commands\PublishAssignments;
10
use Acacha\ForgePublish\Commands\PublishAssignmentUsers;
11
use Acacha\ForgePublish\Commands\PublishAutodeploy;
12
use Acacha\ForgePublish\Commands\PublishCertificates;
13
use Acacha\ForgePublish\Commands\PublishCheckToken;
14
use Acacha\ForgePublish\Commands\PublishComposer;
15
use Acacha\ForgePublish\Commands\PublishConnect;
16
use Acacha\ForgePublish\Commands\PublishCreateSite;
17
use Acacha\ForgePublish\Commands\PublishDeleteAssignment;
18
use Acacha\ForgePublish\Commands\PublishDeploy;
19
use Acacha\ForgePublish\Commands\PublishDeploymentScript;
20
use Acacha\ForgePublish\Commands\PublishDeploymentScriptWithHooks;
21
use Acacha\ForgePublish\Commands\PublishDNS;
22
use Acacha\ForgePublish\Commands\PublishDomain;
23
use Acacha\ForgePublish\Commands\PublishEmail;
24
use Acacha\ForgePublish\Commands\PublishEnv;
25
use Acacha\ForgePublish\Commands\PublishEnvProduction;
26
use Acacha\ForgePublish\Commands\PublishGit;
27
use Acacha\ForgePublish\Commands\PublishGitDependencies;
28
use Acacha\ForgePublish\Commands\PublishGithub;
29
use Acacha\ForgePublish\Commands\PublishIgnored;
30
use Acacha\ForgePublish\Commands\PublishInfo;
31
use Acacha\ForgePublish\Commands\PublishInit;
32
use Acacha\ForgePublish\Commands\PublishInstall;
33
use Acacha\ForgePublish\Commands\PublishMySQL;
34
use Acacha\ForgePublish\Commands\PublishMySQLUsers;
35
use Acacha\ForgePublish\Commands\PublishRepository;
36
use Acacha\ForgePublish\Commands\PublishIp;
37
use Acacha\ForgePublish\Commands\PublishKeyGenerate;
38
use Acacha\ForgePublish\Commands\PublishLog;
39
use Acacha\ForgePublish\Commands\PublishLogin;
40
use Acacha\ForgePublish\Commands\PublishNpm;
41
use Acacha\ForgePublish\Commands\PublishOpen;
42
use Acacha\ForgePublish\Commands\PublishProjectType;
43
use Acacha\ForgePublish\Commands\PublishRc;
44
use Acacha\ForgePublish\Commands\PublishScp;
45
use Acacha\ForgePublish\Commands\PublishServer;
46
use Acacha\ForgePublish\Commands\PublishServername;
47
use Acacha\ForgePublish\Commands\PublishShowAssignment;
48
use Acacha\ForgePublish\Commands\PublishSite;
49
use Acacha\ForgePublish\Commands\PublishSiteDirectory;
50
use Acacha\ForgePublish\Commands\PublishSites;
51
use Acacha\ForgePublish\Commands\PublishSSH;
52
use Acacha\ForgePublish\Commands\PublishSSL;
53
use Acacha\ForgePublish\Commands\PublishToken;
54
use Acacha\ForgePublish\Commands\PublishUpdateAssignment;
55
use Acacha\ForgePublish\Commands\PublishUpgrade;
56
use Acacha\ForgePublish\Commands\PublishURL;
57
use Acacha\ForgePublish\Commands\PublishZsh;
58
use Illuminate\Support\ServiceProvider;
59
60
/**
61
 * Class AcachaForgePublishServiceProvider.
62
 */
63
class AcachaForgePublishServiceProvider extends ServiceProvider
64
{
65
    public function register()
66
    {
67
        if (!defined('ACACHA_FORGE_PUBLISH_PATH')) {
68
            define('ACACHA_FORGE_PUBLISH_PATH', realpath(__DIR__.'/../../'));
69
        }
70
71
        $this->mergeConfigFrom(
72
            ACACHA_FORGE_PUBLISH_PATH.'/config/forge-publish.php', 'forge-publish'
73
        );
74
    }
75
76
    /**
77
     * Boot
78
     */
79
    public function boot()
80
    {
81
        if ($this->app->runningInConsole()) {
82
            $this->commands([
83
                PublishAssignment::class,
84
                PublishShowAssignment::class,
85
                PublishUpdateAssignment::class,
86
                PublishDeleteAssignment::class,
87
                PublishAssignmentGroups::class,
88
                PublishAssignmentUsers::class,
89
                PublishAssignments::class,
90
                PublishArtisan::class,
91
                PublishAutodeploy::class,
92
                PublishCheckToken::class,
93
                PublishComposer::class,
94
                PublishConnect::class,
95
                PublishCreateSite::class,
96
                PublishDeploy::class,
97
                PublishDeploymentScript::class,
98
                PublishDeploymentScriptWithHooks::class,
99
                PublishDNS::class,
100
                PublishDomain::class,
101
                PublishEmail::class,
102
                PublishEnv::class,
103
                PublishEnvProduction::class,
104
                PublishGit::class,
105
                PublishGitDependencies::class,
106
                PublishGithub::class,
107
                PublishIgnored::class,
108
                PublishInfo::class,
109
                PublishInit::class,
110
                PublishInstall::class,
111
                PublishIp::class,
112
                PublishKeyGenerate::class,
113
                PublishLog::class,
114
                PublishLogin::class,
115
                PublishMySQL::class,
116
                PublishMySQLUsers::class,
117
                PublishNpm::class,
118
                PublishOpen::class,
119
                PublishProjectType::class,
120
                Publish::class,
121
                PublishRc::class,
122
                PublishRepository::class,
123
                PublishScp::class,
124
                PublishServer::class,
125
                PublishServername::class,
126
                PublishSiteDirectory::class,
127
                PublishSite::class,
128
                PublishSites::class,
129
                PublishSSH::class,
130
                PublishSSL::class,
131
                PublishCertificates::class,
132
                PublishToken::class,
133
                PublishUpgrade::class,
134
                PublishURL::class,
135
                PublishZsh::class
136
            ]);
137
        }
138
        
139
        $this->publishConfig();
140
    }
141
142
    /**
143
     * Publish config.
144
     */
145
    protected function publishConfig()
146
    {
147
        $this->publishes([
148
            ACACHA_FORGE_PUBLISH_PATH .'/config/forge-publish.php' => config_path('forge-publish.php'),
149
        ]);
150
    }
151
}
152