MediaWiki  master
jsparse.php
Go to the documentation of this file.
1 <?php
24 use Wikimedia\AtEase\AtEase;
25 
26 require_once __DIR__ . '/Maintenance.php';
27 
33 class JSParseHelper extends Maintenance {
34  public $errs = 0;
35 
36  public function __construct() {
37  parent::__construct();
38  $this->addDescription( 'Runs parsing/syntax checks on JavaScript files' );
39  $this->addArg( 'file(s)', 'JavaScript file to test', false );
40  }
41 
42  public function execute() {
43  if ( !$this->hasArg( 0 ) ) {
44  $this->maybeHelp( true );
45  }
46  $files = $this->mArgs;
47 
48  $parser = new JSParser();
49  foreach ( $files as $filename ) {
50  AtEase::suppressWarnings();
51  $js = file_get_contents( $filename );
52  AtEase::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 script to test JavaScript validity using JsMinPlus' parser.
Definition: jsparse.php:33
execute()
Do the actual work.
Definition: jsparse.php:42
__construct()
Default constructor.
Definition: jsparse.php:36
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
Definition: Maintenance.php:66
addArg( $arg, $description, $required=true)
Add some args that are needed.
output( $out, $channel=null)
Throw some output to the user.
hasArg( $argId=0)
Does a given argument exist?
addDescription( $text)
Set the description text.
maybeHelp( $force=false)
Maybe show the help.
array $mArgs
This is the list of arguments that were actually passed.
fatalError( $msg, $exitCode=1)
Output a message and terminate the current script.
$maintClass
Definition: jsparse.php:76