Completed
Push — master ( 52ead2...fd316a )
by David
12s queued 10s
created

NewDockerServiceInfoEventCommand::getEventName()   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
namespace TheAentMachine\AentDockerCompose\Command;
4
5
use Symfony\Component\Console\Question\ChoiceQuestion;
6
use Symfony\Component\Yaml\Yaml;
7
use TheAentMachine\AentDockerCompose\Aenthill\Enum\EventEnum;
8
use TheAentMachine\AentDockerCompose\DockerCompose\DockerComposeService;
9
use TheAentMachine\AentDockerCompose\Service\Service;
10
use TheAentMachine\AentDockerCompose\YamlTools\YamlTools;
11
use TheAentMachine\JsonEventCommand;
12
13
class NewDockerServiceInfoEventCommand extends JsonEventCommand
14
{
15
16
    protected function getEventName(): string
17
    {
18
        return EventEnum::NEW_DOCKER_SERVICE_INFO;
19
    }
20
21
    protected function executeJsonEvent(array $payload): void
22
    {
23
        $service = Service::parsePayload($payload);
24
        $formattedPayload = $service->serializeToDockerComposeService(false);
25
        print_r($formattedPayload);
26
        $yml = Yaml::dump($formattedPayload, 256, 4, Yaml::DUMP_OBJECT_AS_MAP);
27
        file_put_contents(YamlTools::TMP_YAML_FILE, $yml);
28
29
        $dockerComposeService = new DockerComposeService($this->log);
30
        $dockerComposeFilePathnames = $dockerComposeService->getDockerComposePathnames();
31
        if (count($dockerComposeFilePathnames) === 1) {
32
            $toMerge = $dockerComposeFilePathnames;
33
        } else {
34
            $helper = $this->getHelper('question');
35
            $question = new ChoiceQuestion(
36
                'Please choose the docker-compose file(s) in which the service will be added (e.g. 0,1) : ',
37
                $dockerComposeFilePathnames,
38
                null
39
            );
40
            $question->setMultiselect(true);
41
42
            $toMerge = $helper->ask($this->input, $this->output, $question);
43
        }
44
45
        foreach ($toMerge as $file) {
46
            YamlTools::merge($file, YamlTools::TMP_YAML_FILE, $file);
47
        }
48
        // unlink(YamlTools::TMP_YAML_FILE);
49
    }
50
}
51