Passed
Push — master ( 7d1598...ca2272 )
by Allan
08:59 queued 06:38
created

Context::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * Copyright © Vaimo Group. All rights reserved.
4
 * See LICENSE_VAIMO.txt for license details.
5
 */
6
namespace Vaimo\ComposerPatches\Config;
7
8
use drupol\phposinfo\OsInfo;
9
use drupol\phposinfo\Enum\OsName;
10
use drupol\phposinfo\Enum\FamilyName;
11
12
class Context
13
{
14
    public function __construct()
15
    {
16
        OsInfo::register();
17
    }
18
19
    public function getOperationSystemTypeCode()
20
    {
21
        return preg_replace(
22
            '/-+/',
23
            '-',
24
            trim(preg_replace(
25
                '/[^A-Za-z0-9\-]/',
26
                '-',
27
                strtolower(OsInfo::os())
28
            ), '-')
29
        );
30
    }
31
    
32
    public function getOperationSystemName()
33
    {
34
        $typeId = OsInfo::os();
35
36
        $labels = array(
37
            OsName::DARWIN => 'mac',
38
            OsName::AIX => 'unix',
39
            OsName::GNU => 'unix',
40
            OsName::HPUX => 'unix',
41
            OsName::MINIX => 'unix',
42
            OsName::OSF1 => 'unix',
43
            OsName::QNX => 'unix',
44
            OsName::RELIANTUNIXY => 'unix',
45
            OsName::SCOSV => 'unix',
46
            OsName::SINIXY => 'unix',
47
            OsName::ULTRIX => 'unix',
48
            OsName::UNIXWARE => 'unix',
49
            OsName::UWIN => 'unix',
50
            OsName::UWINW7 => 'unix',
51
            OsName::ZOS => 'zos',
52
            OsName::DEBIANFREEBSD => 'bsd',
53
            OsName::FREEBSD => 'bsd',
54
            OsName::GNUFREEBSD => 'bsd',
55
            OsName::GNUKFREEBSD => 'bsd',
56
            OsName::NETBSD => 'bsd',
57
            OsName::OPENBSD => 'bsd',
58
            OsName::DRAGONFLY => 'bsd',
59
            OsName::GNULINUX => 'linux',
60
            OsName::LINUX => 'linux',
61
            OsName::WIN32 => 'windows',
62
            OsName::WINDOWS => 'windows',
63
            OsName::WINDOWSNT => 'windows',
64
            OsName::WINNT => 'windows',
65
            OsName::SOLARIS => 'solaris',
66
            OsName::SUNOS => 'sun',
67
            OsName::CYGWIN => 'cygwin',
68
            OsName::CYGWINNT51 => 'cygwin',
69
            OsName::CYGWINNT61 => 'cygwin',
70
            OsName::CYGWINNT61WOW64 => 'cygwin',
71
            OsName::MINGW => 'mingw',
72
            OsName::MINGW32NT61 => 'mingw',
73
            OsName::MSYSNT61 => 'mingw'
74
        );
75
76
        if (isset($labels[$typeId])) {
77
            return $labels[$typeId];
78
        }
79
80
        return '';
81
    }
82
83
    public function getOperationSystemFamily()
84
    {
85
        // @codingStandardsIgnoreStart
86
        $familyId = OsInfo::family(); // phpcs:ignore PHPCompatibility.Extensions.RemovedExtensions
87
        // @codingStandardsIgnoreEnd
88
        
89
        $labels = array(
90
            FamilyName::BSD => 'unix',
91
            FamilyName::DARWIN => 'unix',
92
            FamilyName::LINUX => 'unix',
93
            FamilyName::WINDOWS => 'windows',
94
            FamilyName::UNIX_ON_WINDOWS => 'windows-unix'
95
        );
96
97
        if (isset($labels[$familyId])) {
98
            return $labels[$familyId];
99
        }
100
101
        return '';
102
    }
103
}
104