Completed
Push — master ( 1081d6...4c9b6d )
by Pavel
03:03
created

ParametersHandler::buildParameters()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 25
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 0
Metric Value
dl 0
loc 25
ccs 0
cts 21
cp 0
rs 8.5806
c 0
b 0
f 0
cc 4
eloc 16
nc 4
nop 1
crap 20
1
<?php
2
3
namespace Paro\EnvironmentParameters;
4
5
use Composer\Script\Event;
6
use Symfony\Component\Filesystem\Filesystem;
7
8
class ParametersHandler
9
{
10
    public static function buildParameters(Event $event)
11
    {
12
        $extras = $event->getComposer()->getPackage()->getExtra();
13
        if (!isset($extras['environment-parameters'])) {
14
            throw new \InvalidArgumentException('The parameter handler needs to be configured through the extra.environment-parameters setting.');
15
        }
16
        $configs = $extras['environment-parameters'];
17
        if (!is_array($configs)) {
18
            throw new \InvalidArgumentException('The extra.environment-parameters setting must be an array or a configuration object.');
19
        }
20
21
        $fs = new Filesystem();
22
        $fileHandler = new FileHandler($fs, $event->getArguments());
23
24
        if (!isset($configs['build-folder'])) {
25
            $configs['build-folder'] = 'build';
26
        }
27
        $fileHandler->initDirectory($configs['build-folder']);
28
29
        $fileProcessor = new FileProcessor($fs, $event->getIO(), $fileHandler);
30
        $fileProcessor->process($configs);
31
32
        $incenteevProcessor = new IncenteevParametersProcessor($fileHandler);
33
        $incenteevProcessor->process($configs, $event);
34
    }
35
}
36