Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
DiffCommand
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 2
12
0.00% covered (danger)
0.00%
0 / 1
 configure
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
2
 execute
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2declare( strict_types = 1 );
3
4/**
5 * Copyright (C) 2018 Kunal Mehta <legoktm@debian.org>
6 * @license GPL-3.0-or-later
7 */
8
9namespace Wikimedia\CloverDiff;
10
11use Symfony\Component\Console\Command\Command;
12use Symfony\Component\Console\Input\InputArgument;
13use Symfony\Component\Console\Input\InputInterface;
14use Symfony\Component\Console\Output\OutputInterface;
15
16class DiffCommand extends Command {
17    /**
18     * Set up our parameters/arguments
19     */
20    protected function configure(): void {
21        $this->setName( 'diff' )
22            ->addArgument(
23                'first', InputArgument::REQUIRED,
24                'First clover.xml file'
25            )->addArgument(
26                'second', InputArgument::REQUIRED,
27                'Second clover.xml file'
28            );
29    }
30
31    /**
32     * @param InputInterface $input stdin
33     * @param OutputInterface $output stdout
34     *
35     * @return int
36     */
37    protected function execute( InputInterface $input, OutputInterface $output ): int {
38        $differ = new Differ();
39        $diff = $differ->diff(
40            $input->getArgument( 'first' ),
41            $input->getArgument( 'second' )
42        );
43
44        $printer = new DiffPrinter( $output );
45        $lowered = $printer->show( $diff );
46
47        return $lowered ? 1 : 0;
48    }
49}