#!/usr/bin/php , Qiang Xue * @link http://www.pradosoft.com/ * @copyright Copyright © 2005 PradoSoft * @license http://www.pradosoft.com/license/ * @version $Revision: $ $Date: $ * @package System.Web.UI */ /** * The compression command line */ define('COMPRESS_COMMAND','java -jar custom_rhino.jar -c %s > %s'); /** * The root directory for storing all source js files */ define('SOURCE_DIR',dirname(__FILE__)); /** * The directory for storing compressed js files */ define('TARGET_DIR',dirname(__FILE__).'/js'); /** * list of js library files to be compressed and built */ $libraries = array( //base javascript functions 'base.js' => array( 'prototype/prototype.js', 'prototype/compat.js', 'prototype/base.js', 'extended/base.js', 'extended/util.js', 'prototype/string.js', 'extended/string.js', 'prototype/enumerable.js', 'prototype/array.js', 'extended/array.js', 'prototype/hash.js', 'prototype/range.js', 'extended/functional.js', 'base/prado.js', 'base/postback.js', 'base/focus.js', 'base/scroll.js' ), //dom functions 'dom.js' => array( 'prototype/dom.js', 'extended/dom.js', 'prototype/form.js', 'prototype/event.js', 'extended/event.js', 'prototype/position.js', 'extra/getElementsBySelector.js', 'extra/behaviour.js', 'effects/util.js' ), //effects 'effects.js' => array( 'effects/effects.js' ), //controls 'controls.js' => array( 'effects/controls.js', 'effects/dragdrop.js', 'base/controls.js' ), //logging 'logger.js' => array( 'extra/logger.js', ), //ajax 'ajax.js' => array( 'prototype/ajax.js', 'base/ajax.js', 'base/json.js' ), //rico 'rico.js' => array( 'effects/rico.js' ), //javascript templating 'template.js' => array( 'extra/tp_template.js' ), //validator 'validator.js' => array( 'base/validation.js', 'base/validators.js' ), //date picker 'datepicker.js' => array( 'base/datepicker.js' ) ); /** * Collect specific libraries to be built from command line */ $requestedLibs=array(); for($i=1;$i<$argc;++$i) $requestedLibs[]=$argv[$i].'.js'; /** * loop through all target files and build them one by one */ foreach($libraries as $libFile => $sourceFiles) { if(!empty($requestedLibs) && !in_array($libFile,$requestedLibs)) continue; $libFile=TARGET_DIR.'/'.$libFile; $contents=''; foreach($sourceFiles as $sourceFile) { $sourceFile=SOURCE_DIR.'/'.$sourceFile; if(!is_file($sourceFile)) echo "Source file not found: $sourceFile\n"; $tempFile=$sourceFile.'.tmp'; $command=sprintf(COMPRESS_COMMAND,$sourceFile,$tempFile); echo "Compressing $sourceFile\n". system($command); $contents.=file_get_contents($tempFile); @unlink($tempFile); } file_put_contents($libFile,$contents); } ?>