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.
Passed
Push — master ( 21abfc...40d55e )
by Anton
02:41
created

deployer_root()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 7
nc 3
nop 0
dl 0
loc 9
rs 10
c 0
b 0
f 0
ccs 0
cts 0
cp 0
crap 12
1
<?php
2
3
declare(strict_types=1);
4
5
/* (c) Anton Medvedev <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Deployer\Support;
12
13
function array_flatten(array $array): array
14
{
15
    $flatten = [];
16
    array_walk_recursive($array, function ($value) use (&$flatten) {
17
        $flatten[] = $value;
18 16
    });
19
    return $flatten;
20 16
}
21 16
22 16
/**
23
 * Recursively merge two config arrays with a specific behavior:
24
 *
25
 * 1. scalar values are overridden
26
 * 2. array values are extended uniquely if all keys are numeric
27
 * 3. all other array values are merged
28
 */
29
function array_merge_alternate(array $original, array $override): array
30
{
31
    foreach ($override as $key => $value) {
32
        if (isset($original[$key])) {
33
            if (!is_array($original[$key])) {
34
                if (is_numeric($key)) {
35
                    // Append scalar value
36
                    $original[] = $value;
37
                } else {
38
                    // Override scalar value
39 16
                    $original[$key] = $value;
40 7
                }
41 7
            } elseif (array_keys($original[$key]) === range(0, count($original[$key]) - 1)) {
42 7
                // Uniquely append to array with numeric keys
43
                $original[$key] = array_unique(array_merge($original[$key], $value));
44 6
            } else {
45
                // Merge all other arrays
46
                $original[$key] = array_merge_alternate($original[$key], $value);
47 7
            }
48
        } else {
49 2
            // Simply add new key/value
50
            $original[$key] = $value;
51 2
        }
52
    }
53
54 7
    return $original;
55
}
56
57
function env_stringify(array $array): string
58 2
{
59
    return implode(' ', array_map(
60
        function ($key, $value) {
61
            return sprintf("%s=%s", $key, escapeshellarg((string) $value));
62 16
        },
63
        array_keys($array),
64
        $array,
65
    ));
66
}
67
68
function is_closure(mixed $var): bool
69
{
70
    return is_object($var) && ($var instanceof \Closure);
71
}
72
73
/**
74 5
 * Check if all elements satisfy predicate.
75
 */
76
function array_all(array $array, callable $predicate): bool
77
{
78
    foreach ($array as $key => $value) {
79
        if (!$predicate($value, $key)) {
80
            return false;
81
        }
82
    }
83
    return true;
84
}
85
86
/**
87
 * Cleanup CRLF new line endings.
88
 */
89
function normalize_line_endings(string $string): string
90
{
91
    return str_replace(["\r\n", "\r"], "\n", $string);
92
}
93
94
/**
95
 * Expand leading tilde (~) symbol in given path.
96
 */
97
function parse_home_dir(string $path): string
98
{
99
    if ('~' === $path || str_starts_with($path, '~/')) {
100
        if (isset($_SERVER['HOME'])) {
101 1
            $home = $_SERVER['HOME'];
102
        } elseif (isset($_SERVER['HOMEDRIVE'], $_SERVER['HOMEPATH'])) {
103 1
            $home = $_SERVER['HOMEDRIVE'] . $_SERVER['HOMEPATH'];
104 1
        } else {
105 1
            return $path;
106
        }
107
108
        return $home . substr($path, 1);
109
    }
110
111
    return $path;
112
}
113
114
function find_line_number(string $source, string $string): int
115
{
116
    $string = explode(PHP_EOL, $string)[0];
117
    $before = strstr($source, $string, true);
118 39
    if (false !== $before) {
119
        return count(explode(PHP_EOL, $before));
120
    }
121
    return 1;
122
}
123
124
function colorize_host(string $alias): string
125
{
126
    if (defined('NO_ANSI')) {
127
        return $alias;
128
    }
129
130 13
    if (in_array($alias, ['localhost', 'local'], true)) {
131 13
        return $alias;
132 1
    }
133
134
    if (getenv('COLORTERM') === 'truecolor') {
135 13
        $hsv = function ($h, $s, $v) {
136
            $r = $g = $b = $i = $f = $p = $q = $t = 0;
0 ignored issues
show
Unused Code introduced by
The assignment to $i is dead and can be removed.
Loading history...
Unused Code introduced by
The assignment to $p is dead and can be removed.
Loading history...
Unused Code introduced by
The assignment to $q is dead and can be removed.
Loading history...
Unused Code introduced by
The assignment to $t is dead and can be removed.
Loading history...
Unused Code introduced by
The assignment to $f is dead and can be removed.
Loading history...
137
            $i = floor($h * 6);
138
            $f = $h * 6 - $i;
139
            $p = $v * (1 - $s);
140
            $q = $v * (1 - $f * $s);
141
            $t = $v * (1 - (1 - $f) * $s);
142
            switch ($i % 6) {
143
                case 0:
144
                    $r = $v;
145
                    $g = $t;
146
                    $b = $p;
147 33
                    break;
148
                case 1:
149
                    $r = $q;
150
                    $g = $v;
151
                    $b = $p;
152
                    break;
153
                case 2:
154
                    $r = $p;
155
                    $g = $v;
156
                    $b = $t;
157
                    break;
158 3
                case 3:
159 3
                    $r = $p;
160 3
                    $g = $q;
161
                    $b = $v;
162
                    break;
163
                case 4:
164
                    $r = $t;
165
                    $g = $p;
166
                    $b = $v;
167 3
                    break;
168
                case 5:
169
                    $r = $v;
170 1
                    $g = $p;
171
                    $b = $q;
172
                    break;
173
            }
174
            $r = round($r * 255);
175
            $g = round($g * 255);
176
            $b = round($b * 255);
177
            return "\x1b[38;2;{$r};{$g};{$b}m";
178
        };
179
        $total = 100;
180
        $colors = [];
181
        for ($i = 0; $i < $total; $i++) {
182
            $colors[] = $hsv($i / $total, .5, .9);
183
        }
184
        if ($alias === 'prod' || $alias === 'production') {
185
            return "$colors[99]$alias\x1b[0m";
186
        }
187
        if ($alias === 'beta') {
188
            return "$colors[14]$alias\x1b[0m";
189
        }
190
        $tag = $colors[abs(crc32($alias)) % count($colors)];
191
        return "$tag$alias\x1b[0m";
192
    }
193
194
    $colors = [
195
        'fg=cyan;options=bold',
196
        'fg=green;options=bold',
197
        'fg=yellow;options=bold',
198
        'fg=cyan',
199
        'fg=blue',
200
        'fg=yellow',
201
        'fg=magenta',
202
        'fg=blue;options=bold',
203
        'fg=green',
204
        'fg=magenta;options=bold',
205
        'fg=red;options=bold',
206
    ];
207
    $tag = $colors[abs(crc32($alias)) % count($colors)];
208
    return "<$tag>$alias</>";
209
}
210
211
function escape_shell_argument(string $argument): string
212
{
213
    return "'" . str_replace("'", "'\\''", $argument) . "'";
214
}
215
216
function deployer_root(): string
217
{
218
    if (getenv('DEPLOYER_ROOT') !== false) {
219
        return getenv('DEPLOYER_ROOT');
220
    } else {
221
        if (defined('DEPLOYER_DEPLOY_FILE')) {
222
            return dirname(DEPLOYER_DEPLOY_FILE);
0 ignored issues
show
Bug introduced by
The constant Deployer\Support\DEPLOYER_DEPLOY_FILE was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
223
        } else {
224
            return getcwd();
225
        }
226
    }
227
}
228