MediaWiki  master
jsparse.php
Go to the documentation of this file.
1 <?php
24 require_once __DIR__ . '/Maintenance.php';
25 
31 class JSParseHelper extends Maintenance {
32  public $errs = 0;
33 
34  public function __construct() {
35  parent::__construct();
36  $this->addDescription( 'Runs parsing/syntax checks on JavaScript files' );
37  $this->addArg( 'file(s)', 'JavaScript file to test', false );
38  }
39 
40  public function execute() {
41  if ( $this->hasArg( 0 ) ) {
42  $files = $this->mArgs;
43  } else {
44  // @todo fixme this is a lame API :)
45  $this->maybeHelp( true );
46  }
47 
48  $parser = new JSParser();
49  foreach ( $files as $filename ) {
50  Wikimedia\suppressWarnings();
51  $js = file_get_contents( $filename );
52  Wikimedia\restoreWarnings();
53  if ( $js === false ) {
54  $this->output( "$filename ERROR: could not read file\n" );
55  $this->errs++;
56  continue;
57  }
58 
59  try {
60  $parser->parse( $js, $filename, 1 );
61  } catch ( Exception $e ) {
62  $this->errs++;
63  $this->output( "$filename ERROR: " . $e->getMessage() . "\n" );
64  continue;
65  }
66 
67  $this->output( "$filename OK\n" );
68  }
69 
70  if ( $this->errs > 0 ) {
71  $this->fatalError( 'Failed.' );
72  }
73  }
74 }
75 
76 $maintClass = JSParseHelper::class;
77 require_once RUN_MAINTENANCE_IF_MAIN;
Maintenance\maybeHelp
maybeHelp( $force=false)
Maybe show the help.
Definition: Maintenance.php:1009
Maintenance\fatalError
fatalError( $msg, $exitCode=1)
Output a message and terminate the current script.
Definition: Maintenance.php:489
Maintenance\addDescription
addDescription( $text)
Set the description text.
Definition: Maintenance.php:329
$maintClass
$maintClass
Definition: jsparse.php:76
Maintenance\hasArg
hasArg( $argId=0)
Does a given argument exist?
Definition: Maintenance.php:338
Maintenance
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
Definition: Maintenance.php:59
JSParseHelper\__construct
__construct()
Default constructor.
Definition: jsparse.php:34
Maintenance\$mArgs
array $mArgs
This is the list of arguments that were actually passed.
Definition: Maintenance.php:88
JSParseHelper\$errs
$errs
Definition: jsparse.php:32
JSParseHelper
Maintenance script to test JavaScript validity using JsMinPlus' parser.
Definition: jsparse.php:31
Maintenance\addArg
addArg( $arg, $description, $required=true)
Add some args that are needed.
Definition: Maintenance.php:300
JSParseHelper\execute
execute()
Do the actual work.
Definition: jsparse.php:40
Maintenance\output
output( $out, $channel=null)
Throw some output to the user.
Definition: Maintenance.php:435
JSParser
Definition: jsminplus.php:675