Passed
Push — master ( 268235...f8ac54 )
by Allan
02:16
created

Context::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
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 getOperationSystemTypeCode()
15
    {
16
        return preg_replace(
17
            '/-+/', 
18
            '-', 
19
            trim(preg_replace(
20
                '/[^A-Za-z0-9\-]/',
21
                '-',
22
                strtolower(OsInfo::os())
23
            ), '-')
24
        );
25
    }
26
    
27
    public function getOperationSystemName()
28
    {
29
        $typeId = OsInfo::os();
30
31
        $labels = array(
32
            OsName::DARWIN => 'mac',
33
            OsName::AIX => 'unix',
34
            OsName::GNU => 'unix',
35
            OsName::HPUX => 'unix',
36
            OsName::MINIX => 'unix',
37
            OsName::OSF1 => 'unix',
38
            OsName::QNX => 'unix',
39
            OsName::RELIANTUNIXY => 'unix',
40
            OsName::SCOSV => 'unix',
41
            OsName::SINIXY => 'unix',
42
            OsName::ULTRIX => 'unix',
43
            OsName::UNIXWARE => 'unix',
44
            OsName::UWIN => 'unix',
45
            OsName::UWINW7 => 'unix',
46
            OsName::ZOS => 'zos',
47
            OsName::DEBIANFREEBSD => 'bsd',
48
            OsName::FREEBSD => 'bsd',
49
            OsName::GNUFREEBSD => 'bsd',
50
            OsName::GNUKFREEBSD => 'bsd',
51
            OsName::NETBSD => 'bsd',
52
            OsName::OPENBSD => 'bsd',
53
            OsName::DRAGONFLY => 'bsd',
54
            OsName::GNULINUX => 'linux',
55
            OsName::LINUX => 'linux',
56
            OsName::WIN32 => 'windows',
57
            OsName::WINDOWS => 'windows',
58
            OsName::WINDOWSNT => 'windows',
59
            OsName::WINNT => 'windows',
60
            OsName::SOLARIS => 'solaris',
61
            OsName::SUNOS => 'sun',
62
            OsName::CYGWIN => 'cygwin',
63
            OsName::CYGWINNT51 => 'cygwin',
64
            OsName::CYGWINNT61 => 'cygwin',
65
            OsName::CYGWINNT61WOW64 => 'cygwin',
66
            OsName::MINGW => 'mingw',
67
            OsName::MINGW32NT61 => 'mingw',
68
            OsName::MSYSNT61 => 'mingw'
69
        );
70
71
        if (isset($labels[$typeId])) {
72
            return $labels[$typeId];
73
        }
74
75
        return '';
76
    }
77
78
    public function getOperationSystemFamily()
79
    {
80
        $familyId = OsInfo::family();
81
        
82
        $labels = array(
83
            FamilyName::BSD => 'unix',
84
            FamilyName::DARWIN => 'unix',
85
            FamilyName::LINUX => 'unix',
86
            FamilyName::WINDOWS => 'windows',
87
            FamilyName::UNIX_ON_WINDOWS => 'windows-unix'
88
        );
89
90
        if (isset($labels[$familyId])) {
91
            return $labels[$familyId];
92
        }
93
94
        return '';
95
    }
96
}
97