MediaWiki REL1_34
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 $this->maybeHelp( true ); // @todo fixme this is a lame API :)
45 exit( 1 ); // it should exit from the above first...
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 exit( 1 );
72 }
73 }
74}
75
76$maintClass = JSParseHelper::class;
77require_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:76