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