Distributing examples too.
[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     lint: {
24       all: [
25         'grunt.js',
26
27         'src/bootstrap/js/*.js',
28         'src/javascripts/*.js',
29
30         'examples/calf/javascripts/*.js',
31         'examples/calf/javascripts/app/*.js',
32         'examples/calf/javascripts/app/**/*.js',
33
34         'test/**/*.js'
35       ]
36     },
37     jshint: {
38       options: {
39         "validthis": true,
40         "laxcomma" : true,
41         "laxbreak" : true,
42         "browser"  : true,
43         "eqnull"   : true,
44         "debug"    : true,
45         "devel"    : true,
46         "boss"     : true,
47         "expr"     : true,
48         "asi"      : true
49       }
50     },
51     less: {
52       default_theme: {
53         files: {
54           'dist/cowhide-default.css': 'src/less/cowhide-default.less'
55         }
56       },
57       default_night_theme: {
58         files: {
59           'dist/cowhide-default-night.css': 'src/less/cowhide-default-night.less'
60         }
61       }
62     },
63     concat: {
64       js: {
65         src: [
66           'lib/jquery-1.8.2.js',
67           'lib/jquery.ui.core.js',
68           'lib/jquery.ui.widget.js',
69           'lib/jquery.ui.mouse.js',
70           'lib/jquery.ui.slider.js',
71           'lib/underscore-min.js',
72
73           // Bootstrap files must preserve order.
74           'src/bootstrap/js/bootstrap-transition.js',
75           'src/bootstrap/js/bootstrap-alert.js',
76           'src/bootstrap/js/bootstrap-button.js',
77           'src/bootstrap/js/bootstrap-carousel.js',
78           'src/bootstrap/js/bootstrap-collapse.js',
79           'src/bootstrap/js/bootstrap-dropdown.js',
80           'src/bootstrap/js/bootstrap-modal.js',
81           'src/bootstrap/js/bootstrap-tooltip.js',
82           'src/bootstrap/js/bootstrap-popover.js',
83           'src/bootstrap/js/bootstrap-scrollspy.js',
84           'src/bootstrap/js/bootstrap-tab.js',
85           'src/bootstrap/js/bootstrap-typeahead.js',
86           'src/bootstrap/js/bootstrap-affix.js',
87
88           'src/javascripts/cowhide-core.js',
89           'src/javascripts/cowhide-widget.js',
90           'src/javascripts/cowhide-button.js',
91           'src/javascripts/cowhide-seat-selector.js',
92           'src/javascripts/cowhide-slider.js'
93         ], dest: 'dist/cowhide.js'
94       },
95       css_default: {
96         src: [
97           'dist/cowhide-default.css',
98           'lib/jquery.ui.slider.css'
99         ], dest: 'dist/cowhide-default.css'
100       },
101       css_default_night: {
102         src: [
103           'dist/cowhide-default-night.css',
104           'lib/jquery.ui.slider.css'
105         ], dest: 'dist/cowhide-default-night.css'
106       }
107     },
108     min: {
109       all: {
110         src: ['dist/cowhide.js'],
111         dest: 'dist/cowhide.min.js'
112       }
113     },
114     cssmin: {
115       default_theme: {
116         src: ['dist/cowhide-default.css'],
117         dest: 'dist/cowhide-default.min.css'
118       },
119       default_night_theme: {
120         src: ['dist/cowhide-default-night.css'],
121         dest: 'dist/cowhide-default-night.min.css'
122       }
123     },
124     copy: {
125       dist: {
126         files: {
127           'dist/images/': 'images/**',
128           'dist/README.md': 'README.md',
129           'dist/examples/calf/': 'examples/calf/**'
130         }
131       }
132     },
133     growl : {
134       started : {
135         message : "Grunt compilation started.",
136         title : "Cowhide"
137       },
138       finished : {
139           message : "Grunt compilation finished.",
140           title : "Cowhide"
141       }
142     }
143   });
144
145   // Default task.
146   grunt.loadNpmTasks('grunt-contrib-less');
147   grunt.loadNpmTasks('grunt-css');
148   grunt.loadNpmTasks('grunt-growl');
149   grunt.loadNpmTasks('grunt-contrib-copy');
150
151   grunt.registerTask('default', 'growl:started lint less concat min cssmin copy growl:finished');
152 };