558a58f08d0f6ad7d0463300d9e43b4b09cd3a7d
[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/bootstrap/**/*.{js,less}',
10         'src/javascripts/*.js',
11         'src/less/*.less',
12         'src/themes/*.less',
13         'src/cowhide-less/*.less',
14
15         'examples/calf/javascripts/*.js',
16         'examples/calf/javascripts/app/*.js',
17         'examples/calf/javascripts/app/**/*.js',
18
19         'tests/**/*.js'
20       ],
21       tasks: 'default'
22     },
23     clean: {
24       folder: 'dist'
25     },
26     lint: {
27       all: [
28         'grunt.js',
29
30         'src/bootstrap/js/*.js',
31         'src/javascripts/*.js',
32
33         'examples/calf/javascripts/*.js',
34         'examples/calf/javascripts/app/*.js',
35         'examples/calf/javascripts/app/**/*.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       }
53     },
54     less: {
55       default_theme: {
56         files: {
57           'dist/cowhide-default.css': 'src/less/cowhide-default.less',
58           'dist/cowhide-responsive.css': 'src/bootstrap/less/responsive.less'
59         }
60       },
61       default_night_theme: {
62         files: {
63           'dist/cowhide-default-night.css': 'src/less/cowhide-default-night.less'
64         }
65       }
66     },
67     concat: {
68       js: {
69         src: [
70           'lib/jquery-1.8.2.js',
71           'lib/jquery.ui.core.js',
72           'lib/jquery.ui.widget.js',
73           'lib/jquery.ui.mouse.js',
74           'lib/jquery.ui.slider.js',
75           'lib/underscore-min.js',
76
77           // Bootstrap files must preserve order.
78           'src/bootstrap/js/bootstrap-transition.js',
79           'src/bootstrap/js/bootstrap-alert.js',
80           'src/bootstrap/js/bootstrap-button.js',
81           'src/bootstrap/js/bootstrap-carousel.js',
82           'src/bootstrap/js/bootstrap-collapse.js',
83           'src/bootstrap/js/bootstrap-dropdown.js',
84           'src/bootstrap/js/bootstrap-modal.js',
85           'src/bootstrap/js/bootstrap-tooltip.js',
86           'src/bootstrap/js/bootstrap-popover.js',
87           'src/bootstrap/js/bootstrap-scrollspy.js',
88           'src/bootstrap/js/bootstrap-tab.js',
89           'src/bootstrap/js/bootstrap-typeahead.js',
90           'src/bootstrap/js/bootstrap-affix.js',
91
92           'src/javascripts/cowhide-core.js',
93           'src/javascripts/cowhide-widget.js',
94           'src/javascripts/cowhide-button.js',
95           'src/javascripts/cowhide-seat-selector.js',
96           'src/javascripts/cowhide-slider.js',
97           'src/javascripts/cowhide-text-input.js'
98         ], dest: 'dist/cowhide.js'
99       },
100       css_default: {
101         src: [
102           'dist/cowhide-default.css',
103           'lib/jquery.ui.slider.css'
104         ], dest: 'dist/cowhide-default.css'
105       },
106       css_default_night: {
107         src: [
108           'dist/cowhide-default-night.css',
109           'lib/jquery.ui.slider.css'
110         ], dest: 'dist/cowhide-default-night.css'
111       }
112     },
113     min: {
114       all: {
115         src: ['dist/cowhide.js'],
116         dest: 'dist/cowhide.min.js'
117       }
118     },
119     cssmin: {
120       default_theme: {
121         src: ['dist/cowhide-default.css'],
122         dest: 'dist/cowhide-default.min.css'
123       },
124       responsive: {
125         src: ['dist/cowhide-responsive.css'],
126         dest: 'dist/cowhide-responsive.min.css'
127       },
128       default_night_theme: {
129         src: ['dist/cowhide-default-night.css'],
130         dest: 'dist/cowhide-default-night.min.css'
131       }
132     },
133     copy: {
134       dist: {
135         files: {
136           'dist/images/': 'images/**',
137           'dist/README.md': 'README.md',
138           'dist/examples/calf/': 'examples/calf/**',
139           'dist/docs/': 'docs/**'
140         }
141       }
142     },
143     exec: {
144       build_docs: {
145         command: 'node dist/docs/build'
146       }
147     },
148     compress: {
149       dist: {
150         files: {
151           'dist/cowhide.zip': 'dist/**'
152         }
153       }
154     },
155     growl : {
156       started : {
157         message : "Grunt compilation started.",
158         title : "Cowhide"
159       },
160       finished : {
161           message : "Grunt compilation finished.",
162           title : "Cowhide"
163       }
164     }
165   });
166
167   // Default task.
168   grunt.loadNpmTasks('grunt-contrib-less');
169   grunt.loadNpmTasks('grunt-css');
170   grunt.loadNpmTasks('grunt-growl');
171   grunt.loadNpmTasks('grunt-contrib-copy');
172   grunt.loadNpmTasks('grunt-contrib-compress');
173   grunt.loadNpmTasks('grunt-clean');
174   grunt.loadNpmTasks('grunt-exec');
175
176   grunt.registerTask('default', 'growl:started clean lint less concat min cssmin copy exec:build_docs compress growl:finished');
177 };