From ccf76e430b7703db028966a845a966f50956f490 Mon Sep 17 00:00:00 2001 From: xue <> Date: Mon, 5 Dec 2005 01:00:16 +0000 Subject: --- framework/Web/Javascripts/build.php | 144 ++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 framework/Web/Javascripts/build.php (limited to 'framework/Web/Javascripts/build.php') diff --git a/framework/Web/Javascripts/build.php b/framework/Web/Javascripts/build.php new file mode 100644 index 00000000..6b21a76d --- /dev/null +++ b/framework/Web/Javascripts/build.php @@ -0,0 +1,144 @@ +#!/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); +} + +?> \ No newline at end of file -- cgit v1.2.3