Passed
Push — master ( 28d9c0...7abd3d )
by Dispositif
04:55
created

Color::bold()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 1
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 1
rs 10
1
<?php
2
/**
3
 * This file is part of dispositif/wikibot application
4
 * 2019 © Philippe M. <[email protected]>
5
 * For the full copyright and MIT license information, please view the LICENSE file.
6
 */
7
8
declare(strict_types=1);
9
10
11
namespace App\Application;
12
13
/**
14
 * CLI color constants.
15
 * From https://github.com/mikeerickson/php-cli-colors
16
 * Class Color
17
 *
18
 * @package App\Application
19
 */
20
class Color
21
{
22
    // Reset all
23
    const RESET  = "\e[0m";
24
    const NORMAL = "\e[0m";
25
26
    // Attributes
27
    const BOLD          = "\e[1m";
28
    const UN_BOLD       = "\e[21m";
29
    const DIM           = "\e[2m";
30
    const UN_DIM        = "\e[22m";
31
    const UNDERLINED    = "\e[4m";
32
    const UN_UNDERLINED = "\e[24m";
33
    const BLINK         = "\e[5m";
34
    const UN_BLINK      = "\e[25m";
35
    const REVERSE       = "\e[7m";
36
    const UN_REVERSE    = "\e[27m";
37
    const HIDDEN        = "\e[8m";
38
    const UN_HIDDEN     = "\e[28m";
39
40
    // Forground colors (Warning: some include bold / unbold)
41
    const BLACK             = "\033[2;30m";
42
    const DARK_GRAY         = "\033[1;30m";
43
    const RED               = "\033[2;31m";
44
    const LIGHT_RED         = "\033[1;31m";
45
    const GREEN             = "\033[2;32m";
46
    const LIGHT_GREEN       = "\033[1;32m";
47
    const BROWN             = "\033[2;33m";
48
    const YELLOW            = "\033[2;33m";
49
    const BLUE              = "\033[2;34m";
50
    const LIGHT_BLUE        = "\033[1;34m";
51
    const MAGENTA           = "\033[2;35m";
52
    const PURPLE            = "\033[2;35m";
53
    const LIGHT_MAGENTA     = "\033[1;35m";
54
    const LIGHT_PURPLE      = "\033[1;35m";
55
    const CYAN              = "\033[2;36m";
56
    const LIGHT_CYAN        = "\033[1;36m";
57
    const LIGHT_GRAY        = "\033[2;37m";
58
    const BOLD_WHITE        = "\033[1;38m";
59
    const LIGHT_WHITE       = "\033[1;38m";
60
    const WHITE             = "\033[2;38m";
61
    const FG_DEFAULT        = "\033[39m";
62
    const GRAY              = "\033[2;90m";
63
    const LIGHT_RED_ALT     = "\033[91m";
64
    const LIGHT_GREEN_ALT   = "\033[92m";
65
    const LIGHT_YELLOW_ALT  = "\033[93m";
66
    const LIGHT_YELLOW      = "\033[1;93m";
67
    const LIGHT_BLUE_ALT    = "\033[94m";
68
    const LIGHT_MAGENTA_ALT = "\033[95m";
69
    const LIGHT_CYAN_ALT    = "\033[96m";
70
    const LIGHT_WHITE_ALT   = "\033[97m";
71
72
    // Backgrounds
73
    const BG_BLACK         = "\033[40m";
74
    const BG_RED           = "\033[41m";
75
    const BG_GREEN         = "\033[42m";
76
    const BG_YELLOW        = "\033[43m";
77
    const BG_BLUE          = "\033[44m";
78
    const BG_MAGENTA       = "\033[45m";
79
    const BG_CYAN          = "\033[46m";
80
    const BG_LIGHT_GRAY    = "\033[47m";
81
    const BG_DEFAULT       = "\033[49m";
82
    const BG_DARK_GRAY     = "\e[100m";
83
    const BG_LIGHT_RED     = "\e[101m";
84
    const BG_LIGHT_GREEN   = "\e[102m";
85
    const BG_LIGHT_YELLOW  = "\e[103m";
86
    const BG_LIGHT_BLUE    = "\e[104m";
87
    const BG_LIGHT_MAGENTA = "\e[105m";
88
    const BG_LIGHT_CYAN    = "\e[106m";
89
    const BG_WHITE         = "\e[107m";
90
91
    // Reset
92
    public static function normal()
93
    {
94
        return self::NORMAL;
95
    }
96
97
    public static function reset()
98
    {
99
        return self::RESET;
100
    }
101
102
    public static function reset_bb() { return self::BG_DEFAULT; }
103
104
    public static function reset_fg() { return self::FG_DEFAULT; }
105
106
    // Atributes
107
    public static function bold() { return self::BOLD; }
108
109
    public static function un_bold() { return self::UN_BOLD; }
110
111
    public static function dim() { return self::DIM; }
112
113
    public static function un_dim() { return self::UN_DIM; }
114
115
    public static function underlined() { return self::UNDERLINED; }
116
117
    public static function un_underlined() { return self::UN_UNDERLINED; }
118
119
    public static function blink() { return self::BLINK; }
120
121
    public static function un_blink() { return self::UN_BLINK; }
122
123
    public static function reverse() { return self::REVERSE; }
124
125
    public static function un_reverse() { return self::UN_REVERSE; }
126
127
    public static function hidden() { return self::HIDDEN; }
128
129
    public static function un_hidden() { return self::UN_HIDDEN; }
130
131
    // WHITE
132
    public static function white()
133
    {
134
        return self::WHITE;
135
    }
136
137
    public static function lwhite()
138
    {
139
        return self::LIGHT_WHITE;
140
    }
141
142
    public static function light_white()
143
    {
144
        return self::LIGHT_WHITE;
145
    }
146
147
    public static function bold_white()
148
    {
149
        return self::LIGHT_WHITE;
150
    }
151
152
    public static function bg_white($bold = null)
153
    {
154
        if ($bold === null) {
155
            return self::BG_WHITE;
156
        }
157
158
        return self::BG_WHITE.($bold ? self::BOLD : self::UN_BOLD);
159
    }
160
161
    // RED
162
    public static function red()
163
    {
164
        return self::RED;
165
    }
166
167
    public static function lred()
168
    {
169
        return self::LIGHT_RED;
170
    }
171
172
    public static function light_red()
173
    {
174
        return self::LIGHT_RED;
175
    }
176
177
    public static function bold_red()
178
    {
179
        return self::LIGHT_RED;
180
    }
181
182
    public static function bg_red($bold = null)
183
    {
184
        if ($bold === null) {
185
            return self::BG_RED;
186
        }
187
188
        return self::BG_RED.($bold ? self::BOLD : self::UN_BOLD);
189
    }
190
191
    // BLUE
192
    public static function blue()
193
    {
194
        return self::BLUE;
195
    }
196
197
    public static function lblue()
198
    {
199
        return self::LIGHT_BLUE;
200
    }
201
202
    public static function light_blue()
203
    {
204
        return self::LIGHT_BLUE;
205
    }
206
207
    public static function bold_blue()
208
    {
209
        return self::LIGHT_BLUE;
210
    }
211
212
    public static function bg_blue($bold = null)
213
    {
214
        if ($bold === null) {
215
            return self::BG_BLUE;
216
        }
217
218
        return self::BG_BLUE.($bold ? self::BOLD : self::UN_BOLD);
219
    }
220
221
    // GREEN
222
    public static function green()
223
    {
224
        return self::GREEN;
225
    }
226
227
    public static function lgreen()
228
    {
229
        return self::LIGHT_RED;
230
    }
231
232
    public static function light_green()
233
    {
234
        return self::LIGHT_GREEN;
235
    }
236
237
    public static function bold_green()
238
    {
239
        return self::LIGHT_GREEN;
240
    }
241
242
    public static function bg_green($bold = null)
243
    {
244
        if ($bold === null) {
245
            return self::BG_GREEN;
246
        }
247
248
        return self::BG_GREEN.($bold ? self::BOLD : self::UN_BOLD);
249
    }
250
251
    // CYAN
252
    public static function cyan()
253
    {
254
        return self::CYAN;
255
    }
256
257
    public static function lcyan()
258
    {
259
        return self::LIGHT_CYAN;
260
    }
261
262
    public static function light_cyan()
263
    {
264
        return self::LIGHT_CYAN;
265
    }
266
267
    public static function bold_cyan()
268
    {
269
        return self::LIGHT_CYAN;
270
    }
271
272
    public static function bg_cyan($bold = null)
273
    {
274
        if ($bold === null) {
275
            return self::BG_CYAN;
276
        }
277
278
        return self::BG_CYAN.($bold ? self::BOLD : self::UN_BOLD);
279
    }
280
281
    // YELLOW
282
    public static function yellow()
283
    {
284
        return self::YELLOW;
285
    }
286
287
    public static function lyellow()
288
    {
289
        return self::LIGHT_YELLOW;
290
    }
291
292
    public static function light_yellow()
293
    {
294
        return self::LIGHT_YELLOW;
295
    }
296
297
    public static function bold_yellow()
298
    {
299
        return self::LIGHT_YELLOW;
300
    }
301
302
    public static function bg_yellow($bold = null)
303
    {
304
        if ($bold === null) {
305
            return self::BG_LIGHT_YELLOW;
306
        }
307
308
        return self::BG_LIGHT_YELLOW.($bold ? self::BOLD : self::UN_BOLD);
309
    }
310
311
    // MAGENTA
312
    public static function magenta()
313
    {
314
        return self::MAGENTA;
315
    }
316
317
    public static function lmagenta()
318
    {
319
        return self::LIGHT_MAGENTA;
320
    }
321
322
    public static function light_magenta()
323
    {
324
        return self::LIGHT_MAGENTA;
325
    }
326
327
    public static function bold_magenta()
328
    {
329
        return self::LIGHT_MAGENTA;
330
    }
331
332
    public static function bg_magenta($bold = null)
333
    {
334
        if ($bold === null) {
335
            return self::BG_MAGENTA;
336
        }
337
338
        return self::BG_MAGENTA.($bold ? self::BOLD : self::UN_BOLD);
339
    }
340
341
    // PURPLE
342
    public static function purple()
343
    {
344
        return self::MAGENTA;
345
    }
346
347
    public static function lpurple()
348
    {
349
        return self::LIGHT_MAGENTA;
350
    }
351
352
    public static function light_purple()
353
    {
354
        return self::LIGHT_MAGENTA;
355
    }
356
357
    public static function bold_purple()
358
    {
359
        return self::LIGHT_MAGENTA;
360
    }
361
362
    public static function bg_purple($bold = null)
363
    {
364
        if ($bold === null) {
365
            return self::BG_MAGENTA;
366
        }
367
368
        return self::BG_MAGENTA.($bold ? self::BOLD : self::UN_BOLD);
369
    }
370
371
    // GRAY
372
    public static function gray()
373
    {
374
        return self::GRAY;
375
    }
376
377
    public static function lgray()
378
    {
379
        return self::LIGHT_GRAY;
380
    }
381
382
    public static function light_gray()
383
    {
384
        return self::LIGHT_GRAY;
385
    }
386
387
    public static function bold_gray()
388
    {
389
        return self::LIGHT_GRAY;
390
    }
391
392
    public static function bg_gray($bold = null)
393
    {
394
        if ($bold === null) {
395
            return self::BG_LIGHT_GRAY;
396
        }
397
398
        return self::BG_LIGHT_GRAY.($bold ? self::BOLD : self::UN_BOLD);
399
    }
400
401
    // Other
402
    public static function black()
403
    {
404
        return self::BLACK;
405
    }
406
407
    public static function dark_gray() { return self::DARK_GRAY; }
408
409
    public static function brown() { return self::BROWN; }
410
411
    public static function bg_black() { return self::BG_BLACK; }
412
413
    public static function bg_brown() { return self::BG_YELLOW; }
414
415
    public static function bg_dark_gray() { return self::BG_DARK_GRAY; }
416
417
    public static function bg_light_red() { return self::BG_LIGHT_RED; }
418
419
    public static function bg_light_green() { return self::BG_LIGHT_GREEN; }
420
421
    public static function bg_light_blue() { return self::BG_LIGHT_BLUE; }
422
423
    public static function bg_light_magenta() { return self::BG_LIGHT_MAGENTA; }
424
425
    public static function bg_light_cyan() { return self::BG_LIGHT_CYAN; }
426
}
427