FiVersioneController::versione()   A
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 30
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 13.7936

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 30
ccs 5
cts 17
cp 0.294
rs 9.3554
c 0
b 0
f 0
cc 5
nc 5
nop 1
crap 13.7936
1
<?php
2
3
namespace Fi\CoreBundle\Controller;
4
5
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
6
use Symfony\Component\Process\Process;
7
8
class FiVersioneController extends Controller
9
{
10
11
    public static $versione;
12
13 13
    public static function versione($container)
14
    {
15
16 13
        if (self::isWindows()) {
17
            return '';
18
        }
19
20 13
        if (self::$versione) {
21 13
            $risposta = self::$versione;
22
        } else {
23
            $projectDir = substr($container->get('kernel')->getRootDir(), 0, -4);
24
25
            $cmd = 'cd ' . $projectDir;
26
            $process = new Process($cmd . ';git describe --tags');
27
            $process->setTimeout(60 * 100);
28
            $process->run();
29
            if ($process->isSuccessful()) {
30
                $out = explode(chr(10), $process->getOutput());
31
32
                $version = isset($out[0]) ? $out[0] : "0";
33
34
                $risposta = $version;
35
            } else {
36
                $risposta = "0";
37
            }
38
            self::$versione = $risposta;
39
        }
40
41
42 13
        return $risposta;
43
    }
44
45 13
    public static function isWindows()
46
    {
47 13
        if (PHP_OS == 'WINNT') {
48
            return true;
49
        } else {
50 13
            return false;
51
        }
52
    }
53
}
54