Passed
Branch master (613786)
by Hannes
02:27
created

DryRun::configureDryRun()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 5
nc 1
nop 1
dl 0
loc 7
rs 10
c 1
b 0
f 0
1
<?php
2
/**
3
 * This file is part of byrokrat\giroapp.
4
 *
5
 * byrokrat\giroapp is free software: you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License as published
7
 * by the Free Software Foundation, either version 3 of the License, or
8
 * (at your option) any later version.
9
 *
10
 * byrokrat\giroapp is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with byrokrat\giroapp. If not, see <http://www.gnu.org/licenses/>.
17
 *
18
 * Copyright 2016-20 Hannes Forsgård
19
 */
20
21
declare(strict_types = 1);
22
23
namespace byrokrat\giroapp\Console\Helper;
24
25
use byrokrat\giroapp\DependencyInjection\CommandBusProperty;
26
use byrokrat\giroapp\CommandBus\Rollback;
27
use Symfony\Component\Console\Command\Command;
28
use Symfony\Component\Console\Input\InputInterface;
29
use Symfony\Component\Console\Input\InputOption;
30
31
trait DryRun
32
{
33
    use CommandBusProperty;
34
35
    protected function configureDryRun(Command $command): void
36
    {
37
        $command->addOption(
38
            'dry',
39
            'd',
40
            InputOption::VALUE_NONE,
41
            'Automatically discard changes to persistent storage'
42
        );
43
    }
44
45
    protected function evaluateDryRun(InputInterface $input): void
46
    {
47
        if ($input->getOption('dry')) {
48
            $this->commandBus->handle(new Rollback);
49
        }
50
    }
51
}
52