Completed
Push — master ( 5987cd...c258b5 )
by Michal
04:11
created

CLI::usage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
ccs 0
cts 3
cp 0
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
/**
4
 * CLI interface
5
 *
6
 * @package    SqlParser
7
 * @subpackage Utils
8
 */
9
namespace SqlParser\Utils;
10
11
/**
12
 * CLI interface
13
 *
14
 * @category   Exceptions
15
 * @package    SqlParser
16
 * @subpackage Utils
17
 * @author     Michal Čihař <[email protected]>
18
 * @license    http://opensource.org/licenses/GPL-2.0 GNU Public License
19
 */
20
class CLI
21
{
22
    public function usage()
23
    {
24
        echo "Usage: highlight-query --query SQL [--format html|cli|text]\n";
25
    }
26
27
    public function parse()
28
    {
29
        $longopts = array('help', 'query:', 'format:');
30
        $params = getopt(
31
            'hq:f:', $longopts
32
        );
33
        foreach ($longopts as $value) {
34
            $value = rtrim($value, ':');
35
            if (isset($params[$value])) {
36
                $params[$value[0]] = $params[$value];
37
            }
38
        }
39
        if (! isset($params['f'])) {
40
            $params['f'] = 'cli';
41
        }
42
        if (! in_array($params['f'], array('html', 'cli', 'text'))) {
43
            return false;
44
        }
45
        return $params;
46
    }
47
48
    public function run()
49
    {
50
        $params = $this->parse();
51
        if ($params === false) {
52
            return 1;
53
        }
54
        if (isset($params['h'])) {
55
            $this->usage();
56
            return 0;
57
        }
58
        if (isset($params['q'])) {
59
            echo Formatter::format(
60
                $params['q'], array('type' => $params['f'])
61
            );
62
            echo "\n";
63
            return 0;
64
        }
65
        echo "ERROR: Missing parameters!\n";
66
        $this->usage();
67
        return 1;
68
    }
69
}
70