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  // it should exit from the above first...
47  exit( 1 );
48  }
49 
50  $parser = new JSParser();
51  foreach ( $files as $filename ) {
52  Wikimedia\suppressWarnings();
53  $js = file_get_contents( $filename );
54  Wikimedia\restoreWarnings();
55  if ( $js === false ) {
56  $this->output( "$filename ERROR: could not read file\n" );
57  $this->errs++;
58  continue;
59  }
60 
61  try {
62  $parser->parse( $js, $filename, 1 );
63  } catch ( Exception $e ) {
64  $this->errs++;
65  $this->output( "$filename ERROR: " . $e->getMessage() . "\n" );
66  continue;
67  }
68 
69  $this->output( "$filename OK\n" );
70  }
71 
72  if ( $this->errs > 0 ) {
73  exit( 1 );
74  }
75  }
76 }
77 
78 $maintClass = JSParseHelper::class;
79 require_once RUN_MAINTENANCE_IF_MAIN;
RUN_MAINTENANCE_IF_MAIN
const RUN_MAINTENANCE_IF_MAIN
Definition: Maintenance.php:38
Maintenance\maybeHelp
maybeHelp( $force=false)
Maybe show the help.
Definition: Maintenance.php:1034
Maintenance\addDescription
addDescription( $text)
Set the description text.
Definition: Maintenance.php:323
$maintClass
$maintClass
Definition: jsparse.php:78
Maintenance\hasArg
hasArg( $argId=0)
Does a given argument exist?
Definition: Maintenance.php:332
Maintenance
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
Definition: Maintenance.php:53
JSParseHelper\__construct
__construct()
Default constructor.
Definition: jsparse.php:34
Maintenance\$mArgs
$mArgs
Definition: Maintenance.php:82
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:294
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:429
JSParser
Definition: jsminplus.php:674