Passed
Push — develop ( b91c6d...602856 )
by Nikolay
05:44 queued 10s
created

VMWareToolsConf   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 17
c 1
b 0
f 0
dl 0
loc 35
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A configure() 0 19 3
A __construct() 0 3 1
1
<?php
2
/**
3
 * Copyright (C) MIKO LLC - All Rights Reserved
4
 * Unauthorized copying of this file, via any medium is strictly prohibited
5
 * Proprietary and confidential
6
 * Written by Nikolay Beketov, 7 2020
7
 *
8
 */
9
10
namespace MikoPBX\Core\System\Configs;
11
12
13
use MikoPBX\Core\System\MikoPBXConfig;
14
use MikoPBX\Core\System\Util;
15
16
class VMWareToolsConf
17
{
18
    private MikoPBXConfig $mikoPBXConfig;
19
20
    /**
21
     * VMWareToolsConf constructor.
22
     */
23
    public function __construct()
24
    {
25
        $this->mikoPBXConfig = new MikoPBXConfig();
26
    }
27
28
29
    /**
30
     * Configure and starts VMWareTools
31
     */
32
    public function configure(): void
33
    {
34
        Util::killByName("vmtoolsd");
35
        $virtualHW = $this->mikoPBXConfig->getGeneralSettings('VirtualHardwareType');
36
        if ('VMWARE' === $virtualHW) {
37
            $conf = "[logging]\n"
38
                . "log = false\n"
39
                . "vmtoolsd.level = none\n"
40
                . ";vmsvc.data = /dev/null\n"
41
                . "vmsvc.level = none\n";
42
43
            $dirVM = '/etc/vmware-tools';
44
            if(!file_exists($dirVM)){
45
                Util::mwMkdir($dirVM);
46
            }
47
48
            file_put_contents("{$dirVM}/tools.conf", $conf);
49
            $vmtoolsdPath = Util::which('vmtoolsd');
50
            Util::mwExec("{$vmtoolsdPath} --background=/var/run/vmtoolsd.pid > /dev/null 2> /dev/null");
51
        }
52
    }
53
}