[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/maintenance/ -> jsparse.php (source)

   1  <?php
   2  /**
   3   * Test JavaScript validity parses using jsmin+'s parser
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License along
  16   * with this program; if not, write to the Free Software Foundation, Inc.,
  17   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18   * http://www.gnu.org/copyleft/gpl.html
  19   *
  20   * @file
  21   * @ingroup Maintenance
  22   */
  23  
  24  require_once  __DIR__ . '/Maintenance.php';
  25  
  26  /**
  27   * Maintenance script to do test JavaScript validity parses using jsmin+'s parser
  28   *
  29   * @ingroup Maintenance
  30   */
  31  class JSParseHelper extends Maintenance {
  32      public $errs = 0;
  33  
  34  	public function __construct() {
  35          parent::__construct();
  36          $this->mDescription = "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() ) {
  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              wfSuppressWarnings();
  51              $js = file_get_contents( $filename );
  52              wfRestoreWarnings();
  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";
  77  require_once RUN_MAINTENANCE_IF_MAIN;


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1