| 0 | 1 #!/bin/sh | 
|  | 2 | 
|  | 3 cd ../media/src | 
|  | 4 | 
|  | 5 # DEFAULTS | 
|  | 6 CLOSURE="/usr/local/closure_compiler/compiler.jar" | 
|  | 7 JSDOC="/usr/local/jsdoc/jsdoc" | 
|  | 8 CMD=$1 | 
|  | 9 | 
|  | 10 MAIN_FILE="../js/jquery.dataTables.js" | 
|  | 11 MIN_FILE="../js/jquery.dataTables.min.js" | 
|  | 12 VERSION=$(grep " * @version     " DataTables.js | awk -F" " '{ print $3 }') | 
|  | 13 | 
|  | 14 echo "" | 
|  | 15 echo "  DataTables build ($VERSION)" | 
|  | 16 echo "" | 
|  | 17 | 
|  | 18 | 
|  | 19 IFS='%' | 
|  | 20 | 
|  | 21 cp DataTables.js DataTables.js.build | 
|  | 22 | 
|  | 23 echo "  Building main script" | 
|  | 24 grep "require(" DataTables.js.build > /dev/null | 
|  | 25 while [ $? -eq 0 ]; do | 
|  | 26 	REQUIRE=$(grep "require(" DataTables.js.build | head -n 1) | 
|  | 27 | 
|  | 28 	SPACER=$(echo ${REQUIRE} | cut -d r -f 1) | 
|  | 29 	FILE=$(echo ${REQUIRE} | sed -e "s#^.*require('##g" -e "s#');##") | 
|  | 30 	DIR=$(echo ${FILE} | cut -d \. -f 1) | 
|  | 31 | 
|  | 32 	sed "s#^#${SPACER}#" < ${DIR}/${FILE} > ${DIR}/${FILE}.build | 
|  | 33 | 
|  | 34 	sed -e "/${REQUIRE}/r ${DIR}/${FILE}.build" -e "/${REQUIRE}/d" < DataTables.js.build > DataTables.js.out | 
|  | 35 	mv DataTables.js.out DataTables.js.build | 
|  | 36 | 
|  | 37 	rm ${DIR}/${FILE}.build | 
|  | 38 | 
|  | 39 	grep "require(" DataTables.js.build > /dev/null | 
|  | 40 done | 
|  | 41 | 
|  | 42 mv DataTables.js.build $MAIN_FILE | 
|  | 43 | 
|  | 44 | 
|  | 45 if [ "$CMD" != "debug" ]; then | 
|  | 46 	if [ "$CMD" = "jshint" -o "$CMD" = "" -o "$CMD" = "cdn" ]; then | 
|  | 47 		echo "  JSHint" | 
|  | 48 		jshint $MAIN_FILE --config ../../scripts/jshint.config | 
|  | 49 		if [ $? -ne 0 ]; then | 
|  | 50 			echo "    Errors occured - exiting" | 
|  | 51 			exit 1 | 
|  | 52 		else | 
|  | 53 			echo "    Pass" | 
|  | 54 		fi | 
|  | 55 	fi | 
|  | 56 | 
|  | 57 	if [ "$CMD" = "compress" -o "$CMD" = "" -o "$CMD" = "cdn" ]; then | 
|  | 58 		echo "  Minification" | 
|  | 59 		echo "/* | 
|  | 60  * File:        jquery.dataTables.min.js | 
|  | 61  * Version:     $VERSION | 
|  | 62  * Author:      Allan Jardine (www.sprymedia.co.uk) | 
|  | 63  * Info:        www.datatables.net | 
|  | 64  * | 
|  | 65  * Copyright 2008-2012 Allan Jardine, all rights reserved. | 
|  | 66  * | 
|  | 67  * This source file is free software, under either the GPL v2 license or a | 
|  | 68  * BSD style license, available at: | 
|  | 69  *   http://datatables.net/license_gpl2 | 
|  | 70  *   http://datatables.net/license_bsd | 
|  | 71  * | 
|  | 72  * This source file is distributed in the hope that it will be useful, but | 
|  | 73  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | 
|  | 74  * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. | 
|  | 75  */" > $MIN_FILE | 
|  | 76 | 
|  | 77 		java -jar $CLOSURE --js $MAIN_FILE >> $MIN_FILE | 
|  | 78 		echo "    Min JS file size: $(ls -l $MIN_FILE | awk -F" " '{ print $5 }')" | 
|  | 79 	fi | 
|  | 80 | 
|  | 81 	if [ "$CMD" = "docs" -o "$CMD" = "" ]; then | 
|  | 82 		echo "  Documentation" | 
|  | 83 		$JSDOC -d ../../docs -t JSDoc-DataTables $MAIN_FILE | 
|  | 84 	fi | 
|  | 85 | 
|  | 86 	if [ "$CMD" = "cdn" ]; then | 
|  | 87 		echo "  CDN" | 
|  | 88 		if [ -d ../../cdn ]; then | 
|  | 89 			rm -Rf ../../cdn | 
|  | 90 		fi | 
|  | 91 		mkdir ../../cdn | 
|  | 92 		mkdir ../../cdn/css | 
|  | 93 		cp $MAIN_FILE ../../cdn | 
|  | 94 		cp $MIN_FILE ../../cdn | 
|  | 95 		cp ../css/jquery.dataTables.css ../../cdn/css | 
|  | 96 		cp ../css/jquery.dataTables_themeroller.css ../../cdn/css | 
|  | 97 		cp -r ../images ../../cdn/ | 
|  | 98 		rm ../../cdn/images/Sorting\ icons.psd | 
|  | 99 	fi | 
|  | 100 fi | 
|  | 101 | 
|  | 102 | 
|  | 103 # Back to DataTables root dir | 
|  | 104 cd ../.. | 
|  | 105 | 
|  | 106 # | 
|  | 107 # Packaging files | 
|  | 108 # | 
|  | 109 cat <<EOF > package.json | 
|  | 110 { | 
|  | 111 	"name": "DataTables", | 
|  | 112 	"version": "${VERSION}", | 
|  | 113 	"title": "DataTables", | 
|  | 114 	"author": { | 
|  | 115 		"name": "Allan Jardine", | 
|  | 116 		"url": "http://sprymedia.co.uk" | 
|  | 117 	}, | 
|  | 118 	"licenses": [ | 
|  | 119 		{ | 
|  | 120 			"type": "BSD", | 
|  | 121 			"url": "http://datatables.net/license_bsd" | 
|  | 122 		}, | 
|  | 123 		{ | 
|  | 124 			"type": "GPLv2", | 
|  | 125 			"url": "http://datatables.net/license_gpl2" | 
|  | 126 		} | 
|  | 127 	], | 
|  | 128 	"dependencies": { | 
|  | 129 		"jquery": "1.4 - 1.8" | 
|  | 130 	}, | 
|  | 131 	"description": "DataTables enhances HTML tables with the ability to sort, filter and page the data in the table very easily. It provides a comprehensive API and set of configuration options, allowing you to consume data from virtually any data source.", | 
|  | 132 	"keywords": [ | 
|  | 133 		"DataTables", | 
|  | 134 		"DataTable", | 
|  | 135 		"table", | 
|  | 136 		"grid", | 
|  | 137 		"filter", | 
|  | 138 		"sort", | 
|  | 139 		"page", | 
|  | 140 		"internationalisable" | 
|  | 141 	], | 
|  | 142 	"homepage": "http://datatables.net" | 
|  | 143 } | 
|  | 144 EOF | 
|  | 145 | 
|  | 146 cat <<EOF > component.json | 
|  | 147 { | 
|  | 148 	"name": "DataTables", | 
|  | 149 	"version": "${VERSION}", | 
|  | 150 	"main": [ | 
|  | 151 		"./media/js/jquery.dataTables.js", | 
|  | 152 		"./media/css/jquery.dataTables.css", | 
|  | 153 	], | 
|  | 154 	"dependencies": { | 
|  | 155 		"jquery": "~1.8.0" | 
|  | 156 	} | 
|  | 157 } | 
|  | 158 EOF | 
|  | 159 | 
|  | 160 | 
|  | 161 echo "  Done\n" | 
|  | 162 | 
|  | 163 |