Add datatables-1.9.4 and jquery-1.10.2 libraries
[proteocache.git] / webapp / resources / datatables-1.9.4 / scripts / make.sh
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