GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( 62388f...08e16b )
by Sam
17:50 queued 16:46
created

BuildController   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 12
lcom 1
cbo 5
dl 0
loc 93
ccs 0
cts 57
cp 0
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A init() 0 7 1
A actionBuild() 0 21 5
A actionTestClient() 0 4 1
A options() 0 13 2
A optionAliases() 0 8 1
A stdout() 0 11 2
1
<?php
2
declare(strict_types=1);
3
4
namespace SamIT\Yii2\PhpFpm\controllers;
5
6
use SamIT\Yii2\PhpFpm\helpers\Docker;
7
use SamIT\Yii2\PhpFpm\Module;
8
use yii\base\InvalidConfigException;
9
use yii\console\Controller;
10
use yii\helpers\Console;
11
12
/**
13
 * Class BuildController
14
 * @package SamIT\Yii2\PhpFpm\controllers
15
 * @property Module $module
16
 */
17
class BuildController extends Controller
18
{
19
    public $defaultAction = 'build';
20
21
    /**
22
     * @var string The name of the created image
23
     * If not explicitly set will take its default from module config.
24
     */
25
    public $image;
26
27
    /**
28
     * @var string The tag of the created image
29
     * If not explicitly set will take its default from module config.
30
     */
31
    public $tag;
32
33
    /**
34
     * @var bool whether to push the image after a successful build.
35
     * If not explicitly set will take its default from module config.
36
     */
37
    public $push;
38
39
    public function init(): void
40
    {
41
        parent::init();
42
        $this->push = $this->module->push;
43
        $this->image = $this->module->image;
44
        $this->tag = $this->module->tag;
45
    }
46
47
    public function actionBuild(): void
48
    {
49
        if ($this->push && !isset($this->image)) {
50
            throw new InvalidConfigException("When using the push option, you must configure or provide image");
51
        }
52
53
        $params = [];
54
55
        if (isset($this->image)) {
56
            $params['t'] = "{$this->image}:{$this->tag}";
57
        }
58
59
        $context = $this->module->createBuildContext($this->tag);
60
61
        $docker = new Docker();
62
        $docker->build($context, "{$this->image}:{$this->tag}");
63
64
        if ($this->push) {
65
            $docker->push("{$this->image}:{$this->tag}");
66
        }
67
    }
68
69
    public function actionTestClient(): void
70
    {
71
        $this->stdout("It seems the console client works!\n", Console::FG_GREEN);
72
    }
73
74
75
    public function options($actionID)
76
    {
77
78
        $result = parent::options($actionID);
79
        switch ($actionID) {
80
            case 'build':
81
                $result[] = 'push';
82
                $result[] = 'image';
83
                $result[] = 'tag';
84
                break;
85
        }
86
        return $result;
87
    }
88
89
    public function optionAliases()
90
    {
91
        $result = parent::optionAliases();
92
        $result['p'] = 'push';
93
        $result['t'] = 'tag';
94
        $result['i'] = 'image';
95
        return $result;
96
    }
97
98
    public function stdout($string)
99
    {
100
        if ($this->isColorEnabled()) {
101
            $args = \func_get_args();
102
            \array_shift($args);
103
            $string = Console::ansiFormat($string, $args);
104
        }
105
106
        echo $string;
107
        return \strlen($string);
108
    }
109
}
110