addDescription( 'Runs parsing/syntax checks on JavaScript files' ); $this->addArg( 'file(s)', 'JavaScript file to test', false ); } public function execute() { if ( $this->hasArg() ) { $files = $this->mArgs; } else { $this->maybeHelp( true ); // @todo fixme this is a lame API :) exit( 1 ); // it should exit from the above first... } $parser = new JSParser(); foreach ( $files as $filename ) { Wikimedia\suppressWarnings(); $js = file_get_contents( $filename ); Wikimedia\restoreWarnings(); if ( $js === false ) { $this->output( "$filename ERROR: could not read file\n" ); $this->errs++; continue; } try { $parser->parse( $js, $filename, 1 ); } catch ( Exception $e ) { $this->errs++; $this->output( "$filename ERROR: " . $e->getMessage() . "\n" ); continue; } $this->output( "$filename OK\n" ); } if ( $this->errs > 0 ) { exit( 1 ); } } } $maintClass = JSParseHelper::class; require_once RUN_MAINTENANCE_IF_MAIN;