MediaWiki REL1_40
jsparse.php
Go to the documentation of this file.
1<?php
24use Wikimedia\AtEase\AtEase;
25
26require_once __DIR__ . '/Maintenance.php';
27
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;
77require_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...
addArg( $arg, $description, $required=true, $multi=false)
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