From 568a5cea4833a3316f3741dcd32699334f770d26 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 28 Jan 2006 17:09:31 +0000 Subject: Rename "tools" to "buildscripts". --- buildscripts/jsbuilder/build.php | 152 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 buildscripts/jsbuilder/build.php (limited to 'buildscripts/jsbuilder/build.php') diff --git a/buildscripts/jsbuilder/build.php b/buildscripts/jsbuilder/build.php new file mode 100644 index 00000000..eac0acae --- /dev/null +++ b/buildscripts/jsbuilder/build.php @@ -0,0 +1,152 @@ +#!/usr/bin/php +, Qiang Xue + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Revision: $ $Date: $ + * @package Tools + */ + +//compress using a script, has more options but lesss robut +//define('COMPRESS_COMMAND','java -jar '.dirname(__FILE__).'/custom_rhino.jar packer.js %s > %s'); + +//compress using build-in engine, very robust. +define('COMPRESS_COMMAND','java -jar '.dirname(__FILE__).'/custom_rhino.jar -c %s > %s'); + +/** + * The root directory for storing all source js files + */ +define('SOURCE_DIR',realpath(dirname(__FILE__).'/../../framework/Web/JavaScripts')); +/** + * The directory for storing compressed js files + */ +define('TARGET_DIR',realpath(dirname(__FILE__).'/../../framework/Web/JavaScripts/js')); + +if(SOURCE_DIR===false || TARGET_DIR===false) + die('Unable to determine the build path.'); +if(!is_writable(TARGET_DIR)) + die('Unable to create files under '.TARGET_DIR.'.'); + +/** + * list of js library files to be compressed and built + */ +$libraries = array( + 'prado.js' => array( + + //base javascript functions + 'prototype/prototype.js', + 'prototype/base.js', + 'extended/util.js', + 'extended/base.js', + 'prototype/string.js', + 'extended/string.js', + 'prototype/enumerable.js', + 'prototype/array.js', + 'prototype/hash.js', + 'prototype/range.js', + + //dom functions + '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', + 'extended/date.js', + + //prado core + 'prado/prado.js', + 'prado/form.js', + 'prado/element.js', + 'prado/controls.js' + ), + + //effects + 'effects.js' => array( + 'effects/effects.js', + 'prado/effects.js' + ), + //active controls + 'ajax.js' => array( + 'prototype/ajax.js', + 'prado/ajax.js', + 'extra/json.js', + 'effects/controls.js', + 'effects/dragdrop.js', + 'effects/slider.js', + 'prado/activecontrols.js' + ), + //logging + 'logger.js' => array( + 'extra/logger.js', + ), + + //rico + 'rico.js' => array( + 'rico/rico.js', + 'rico/extension.js' + ), + + //validator + 'validator.js' => array( + 'prado/validation.js', + 'prado/validators.js' + ), + + //date picker + 'datepicker.js' => array( + 'datepicker/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; + echo "\nBuilding $libFile...\n"; + $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 "...adding $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