Completed
Branch master (6576e0)
by Timur
02:16
created

ForgeServiceProvider   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 3
dl 0
loc 47
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Laravel\Forge\Laravel;
4
5
use Laravel\Forge\ApiProvider;
6
use Laravel\Forge\Forge;
7
use Illuminate\Support\ServiceProvider;
8
use Laravel\Forge\Servers\Factory;
9
10
class ForgeServiceProvider extends ServiceProvider
11
{
12
    /**
13
     * Bootstrap the application services.
14
     */
15
    public function boot()
16
    {
17
        $this->app->singleton(Forge::class, function ($app) {
18
            $token = $app['config']->get('forge.token');
19
            $forge = new Forge(new ApiProvider($token));
20
21
            // Set default credentials (if any exists).
22
            $defaultCredentials = $app['config']->get('forge.default_credentials', []);
23
24
            if (!count($defaultCredentials)) {
25
                return $forge;
26
            }
27
28
            foreach ($defaultCredentials as $provider => $credential) {
29
                Factory::setDefaultCredential($provider, $credential);
30
            }
31
32
            return $forge;
33
        });
34
35
        // Publish configuration file.
36
        $this->publishes([
37
            __DIR__.'/configs/forge.php' => config_path('forge.php'),
38
        ]);
39
40
        // Register console commands.
41
        if ($this->app->runningInConsole()) {
42
            $this->commands([
43
                Commands\ForgeCredentials::class,
44
                Commands\ForgeServers::class,
45
            ]);
46
        }
47
    }
48
49
    /**
50
     * Register the application services.
51
     */
52
    public function register()
53
    {
54
        //
55
    }
56
}
57