forked from moodlehq/moodle-local_codechecker
-
Notifications
You must be signed in to change notification settings - Fork 3
/
run.php
72 lines (59 loc) · 2.24 KB
/
run.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Run the code checker from the command-line.
*
* @package local_codechecker
* @copyright 2011 The Open University
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define('CLI_SCRIPT', true);
require(dirname(__FILE__) . '/../../config.php');
require_once($CFG->libdir . '/clilib.php');
// Own stuff (TODO: Some day all these will be moved to classes).
require_once($CFG->dirroot . '/local/codechecker/locallib.php');
// Auto load all the (vendor installed) tools we are going to need.
if (!autoload_tools()) {
throw new coding_exception('Unable to find the "vendor" directory within the plugin. Please, install the plugin again.');
}
// Get the command-line options.
list($options, $unrecognized) = cli_get_params(
['help' => false, 'interactive' => false, 'exclude' => ''],
['h' => 'help',
'i' => 'interactive',
'e' => 'exclude', ]);
if (count($unrecognized) != 1) {
$options['help'] = true;
} else {
$path = clean_param(reset($unrecognized), PARAM_PATH);
}
if ($options['help']) {
echo get_string('clihelp', 'local_codechecker'), "\n";
die();
}
$interactive = false;
if ($options['interactive']) {
$interactive = true;
}
raise_memory_limit(MEMORY_HUGE);
// Initialize and run the CS.
$runner = new \local_codechecker\runner();
$runner->set_verbosity(1);
$runner->set_interactive($interactive);
$runner->set_ignorepatterns(local_codesniffer_get_ignores($options['exclude']));
$fullpath = local_codechecker_clean_path($CFG->dirroot . '/' . trim($path, '/'));
$runner->set_files([$fullpath]);
$runner->run();