MediaWiki REL1_35
jsparse.php
Go to the documentation of this file.
1<?php
24require_once __DIR__ . '/Maintenance.php';
25
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;
79require_once RUN_MAINTENANCE_IF_MAIN;
const RUN_MAINTENANCE_IF_MAIN
Maintenance script to test JavaScript validity using JsMinPlus' parser.
Definition jsparse.php:31
execute()
Do the actual work.
Definition jsparse.php:40
__construct()
Default constructor.
Definition jsparse.php:34
Abstract maintenance class for quickly writing and churning out maintenance scripts with minimal effo...
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.
$maintClass
Definition jsparse.php:78