Files
moodle/lib/pear/PHP/CodeSniffer/MoodleCLI.php
T
2009-05-21 03:53:28 +00:00

117 lines
4.6 KiB
PHP

<?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/>.
/**
* Subclass of lib/pear/PHP/CodeSniffer/CLI.php
*
* Simple modifications to the CLI class to only use the Moodle Standard
*
* @package lib-pear-php-codesniffer
* @copyright 2009 Nicolas Connault
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
require_once('PHP/MoodleCodeSniffer.php');
require_once('PHP/CodeSniffer/CLI.php');
/**
* A class to process command line runsniffer scripts. Modified for use within Moodle
*
* @category lib-pear-php-codesniffer
* @copyright 2009 Nicolas Connault
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class moodle_codesniffer_cli extends php_codesniffer_cli {
/**
* Modified to return Moodle only
*
* @param string $standard The standard to validate.
*
* @return string
*/
public function validatestandard($standard) {
return 'Moodle';
}
/**
* Prints out the usage information for this script.
*
* Modified by removing the --standard option
*
* @return void
*/
public function printusage() {
echo 'Usage: runsniffer [-nwlvi] [--report=<report>]'.PHP_EOL;
echo ' [--config-set key value] [--config-delete key] [--config-show]'.PHP_EOL;
echo ' [--generator=<generator>] [--extensions=<extensions>]'.PHP_EOL;
echo ' [--ignore=<patterns>] [--tab-width=<width>] <file> ...'.PHP_EOL;
echo ' -n Do not print warnings'.PHP_EOL;
echo ' -w Print both warnings and errors (on by default)'.PHP_EOL;
echo ' -l Local directory only, no recursion'.PHP_EOL;
echo ' -v[v][v] Print verbose output'.PHP_EOL;
echo ' -i Show a list of installed coding standards'.PHP_EOL;
echo ' --help Print this help message'.PHP_EOL;
echo ' --version Print version information'.PHP_EOL;
echo ' <file> One or more files and/or directories to check'.PHP_EOL;
echo ' <extensions> A comma separated list of file extensions to check'.PHP_EOL;
echo ' (only valid if checking a directory)'.PHP_EOL;
echo ' <patterns> A comma separated list of patterns that are used'.PHP_EOL;
echo ' to ignore directories and files'.PHP_EOL;
echo ' <width> The number of spaces each tab represents'.PHP_EOL;
echo ' <generator> The name of a doc generator to use'.PHP_EOL;
echo ' (forces doc generation instead of checking)'.PHP_EOL;
echo ' <report> Print either the "full", "xml", "checkstyle",'.PHP_EOL;
echo ' "csv" or "summary" report'.PHP_EOL;
echo ' (the "full" report is printed by default)'.PHP_EOL;
}
/**
* Processes an unknown command line argument.
*
* Overriding CLI method to allow for dynamic loading of path to requested file/directory
*
* @param string $arg The command line argument.
* @param int $pos The position of the argument on the command line.
* @param array $values An array of values determined from CLI args.
*
* @return array The updated CLI values.
* @see getCommandLineValues()
*/
public function processunknownargument($arg, $pos, $values) {
global $args, $argv, $argc;
// We don't know about any additional switches; just files.
if ($arg{0} === '-') {
echo 'ERROR: option "'.$arg.'" not known.'.PHP_EOL.PHP_EOL;
$this->printUsage();
exit(2);
}
$file = $_SERVER['PWD'] . '/' . $arg;
if (file_exists($file) === false) {
echo 'ERROR: The file "'.$arg.'" does not exist.'.PHP_EOL.PHP_EOL;
$this->printUsage();
exit(2);
} else {
$values['files'][] = $file;
}
return $values;
}
}