Completed
Pull Request — master (#2)
by Pol
03:20
created

PrependTask::run()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 10
nc 1
nop 0
dl 0
loc 18
ccs 0
cts 13
cp 0
crap 2
rs 9.9332
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types = 1);
4
5
namespace PhpTaskman\Core\Plugin\Task;
6
7
use PhpTaskman\Core\Plugin\BaseTask;
8
use Robo\Common\BuilderAwareTrait;
9
use Robo\Task\File\Write;
10
11
final class PrependTask extends BaseTask
12
{
13
    use BuilderAwareTrait;
14
15
    public const ARGUMENTS = [
16
        'file',
17
        'text',
18
    ];
19
    public const NAME = 'prepend';
20
21
    /**
22
     * {@inheritdoc}
23
     */
24
    public function run()
25
    {
26
        $arguments = $this->getTaskArguments();
27
28
        /** @var \PhpTaskman\Core\Plugin\Task\ProcessTask $processTask */
29
        $processTask = $this->task(ProcessTask::class);
30
        $processTask->setTaskArguments([
31
            'from' => $arguments['file'],
32
            'to' => $arguments['file'],
33
        ]);
34
35
        /** @var \Robo\Task\File\Write $writeTask */
36
        $writeTask = $this->task(Write::class, $arguments['file']);
37
38
        return $this->collectionBuilder()->addTaskList([
39
            $writeTask->text($arguments['text'] . \file_get_contents($arguments['file'])),
40
            $processTask,
41
        ])->run();
42
    }
43
}
44