Removes copied dependencies, bootstrap unit tests, custom scrollbars.
[profile/ivi/cowhide.git] / grunt.js
1 /*
2  * Copyright (c) 2012, Intel Corporation.
3  *
4  * This program is licensed under the terms and conditions of the
5  * Apache License, version 2.0.  The full text of the Apache License is at
6  * http://www.apache.org/licenses/LICENSE-2.0
7  *
8  */
9
10 module.exports = function(grunt) {
11
12   // Project configuration.
13   grunt.initConfig({
14     watch: {
15       files: [
16         'grunt.js',
17
18         'src/javascripts/*.js',
19         'src/bootstrap/**/*.{js,less}',
20         'src/stylesheets/**/*.less',
21         'src/themes/**/*.less',
22
23         'tests/**/*.js'
24       ],
25       tasks: 'default'
26     },
27     clean: {
28       folder: 'dist'
29     },
30     lint: {
31       all: [
32         'grunt.js',
33
34         'src/bootstrap/js/*.js',
35         'src/javascripts/*.js',
36
37         'test/**/*.js'
38       ]
39     },
40     jshint: {
41       options: {
42         "validthis": true,
43         "laxcomma" : true,
44         "laxbreak" : true,
45         "browser"  : true,
46         "eqnull"   : true,
47         "debug"    : true,
48         "devel"    : true,
49         "boss"     : true,
50         "expr"     : true,
51         "asi"      : true,
52         "es5"      : true
53       }
54     },
55     less: {
56       default_: {
57         files: {
58           'dist/cowhide-default.css': 'src/themes/default/default.less',
59           'dist/cowhide-responsive.css': 'src/bootstrap/less/responsive.less'
60         }
61       },
62       default_night: {
63         files: {
64           'dist/cowhide-default-night.css': 'src/themes/default/default-night.less'
65         }
66       },
67       amelia: {
68         files: {
69           'dist/cowhide-amelia.css': 'src/themes/amelia/amelia.less'
70         }
71       },
72       amelia_night: {
73         files: {
74           // TODO: add theme implementation for amelia-night.
75           'dist/cowhide-amelia-night.css': 'src/themes/amelia/amelia.less'
76         }
77       },
78       spruce: {
79         files: {
80           'dist/cowhide-spruce.css': 'src/themes/spruce/spruce.less'
81         }
82       },
83       spruce_night: {
84         files: {
85           // TODO: add theme implementation for spruce-night.
86           'dist/cowhide-spruce-night.css': 'src/themes/spruce/spruce.less'
87         }
88       }
89     },
90     concat: {
91       cowhide_js: {
92         src: [
93           'lib/jquery/dist/jquery.js',
94           'lib/jquery-ui/dist/jquery-ui.js',
95           'lib/underscore/underscore.js',
96
97           // Bootstrap files must preserve order.
98           'src/bootstrap/js/bootstrap-transition.js',
99           'src/bootstrap/js/bootstrap-alert.js',
100           'src/bootstrap/js/bootstrap-button.js',
101           'src/bootstrap/js/bootstrap-carousel.js',
102           'src/bootstrap/js/bootstrap-collapse.js',
103           'src/bootstrap/js/bootstrap-dropdown.js',
104           'src/bootstrap/js/bootstrap-modal.js',
105           'src/bootstrap/js/bootstrap-tooltip.js',
106           'src/bootstrap/js/bootstrap-popover.js',
107           'src/bootstrap/js/bootstrap-scrollspy.js',
108           'src/bootstrap/js/bootstrap-tab.js',
109           'src/bootstrap/js/bootstrap-typeahead.js',
110           'src/bootstrap/js/bootstrap-affix.js',
111
112           'src/javascripts/api.js',
113
114           'src/javascripts/cowhide-core.js',
115           'src/javascripts/cowhide-widget.js',
116           'src/javascripts/cowhide-button.js',
117           'src/javascripts/cowhide-seat-selector.js',
118           'src/javascripts/cowhide-slider.js',
119           'src/javascripts/cowhide-text-input.js',
120           'src/javascripts/cowhide-radio-input.js',
121           'src/javascripts/cowhide-checkbox-input.js',
122           'src/javascripts/cowhide-select.js',
123           'src/javascripts/cowhide-page.js',
124           'src/javascripts/cowhide-header.js',
125           'src/javascripts/cowhide-scrollable.js',
126           'src/javascripts/cowhide-simple-scrollable.js'
127         ], dest: 'dist/cowhide.js'
128       },
129       css_default: {
130         src: [
131           'dist/cowhide-default.css',
132         ], dest: 'dist/cowhide-default.css'
133       },
134       css_default_night: {
135         src: [
136           'dist/cowhide-default-night.css',
137         ], dest: 'dist/cowhide-default-night.css'
138       },
139       css_amelia: {
140         src: [
141           'dist/cowhide-amelia.css',
142         ], dest: 'dist/cowhide-amelia.css'
143       },
144       css_amelia_night: {
145         src: [
146           'dist/cowhide-amelia-night.css',
147         ], dest: 'dist/cowhide-amelia-night.css'
148       },
149       css_spruce: {
150         src: [
151           'dist/cowhide-spruce.css',
152         ], dest: 'dist/cowhide-spruce.css'
153       },
154       css_spruce_night: {
155         src: [
156           'dist/cowhide-spruce-night.css',
157         ], dest: 'dist/cowhide-spruce-night.css'
158       }
159     },
160     min: {
161       cowhide: {
162         src: ['dist/cowhide.js'],
163         dest: 'dist/cowhide.min.js'
164       }
165     },
166     cssmin: {
167       default_: {
168         src: ['dist/cowhide-default.css'],
169         dest: 'dist/cowhide-default.min.css'
170       },
171       responsive: {
172         src: ['dist/cowhide-responsive.css'],
173         dest: 'dist/cowhide-responsive.min.css'
174       },
175       default_night: {
176         src: ['dist/cowhide-default-night.css'],
177         dest: 'dist/cowhide-default-night.min.css'
178       },
179       amelia: {
180         src: ['dist/cowhide-amelia.css'],
181         dest: 'dist/cowhide-amelia.min.css'
182       },
183       amelia_night: {
184         src: ['dist/cowhide-amelia-night.css'],
185         dest: 'dist/cowhide-amelia-night.min.css'
186       },
187       spruce: {
188         src: ['dist/cowhide-spruce.css'],
189         dest: 'dist/cowhide-spruce.min.css'
190       },
191       spruce_night: {
192         src: ['dist/cowhide-spruce-night.css'],
193         dest: 'dist/cowhide-spruce-night.min.css'
194       }
195     },
196     copy: {
197       dist: {
198         files: {
199           'dist/images/': 'images/**',
200           'dist/README.md': 'README.md',
201           'dist/docs/': 'docs/**'
202         }
203       },
204     },
205     exec: {
206       build_docs: {
207         command: 'node dist/docs/build'
208       }
209     },
210     compress: {
211       dist: {
212         files: {
213           'dist/cowhide.zip': 'dist/**'
214         }
215       }
216     },
217     growl : {
218       started : {
219         message : "Grunt compilation started.",
220         title : "Cowhide"
221       },
222       finished : {
223           message : "Grunt compilation finished.",
224           title : "Cowhide"
225       }
226     }
227   });
228
229   // Default task.
230   grunt.loadNpmTasks('grunt-contrib-less');
231   grunt.loadNpmTasks('grunt-css');
232   grunt.loadNpmTasks('grunt-growl');
233   grunt.loadNpmTasks('grunt-contrib-copy');
234   grunt.loadNpmTasks('grunt-contrib-compress');
235   grunt.loadNpmTasks('grunt-clean');
236   grunt.loadNpmTasks('grunt-exec');
237
238   grunt.registerTask('default', 'growl:started clean lint less concat min cssmin copy exec:build_docs compress growl:finished');
239 };