Grunt cleans and releases zip.
[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         }
59       },
60       default_night_theme: {
61         files: {
62           'dist/cowhide-default-night.css': 'src/less/cowhide-default-night.less'
63         }
64       }
65     },
66     concat: {
67       js: {
68         src: [
69           'lib/jquery-1.8.2.js',
70           'lib/jquery.ui.core.js',
71           'lib/jquery.ui.widget.js',
72           'lib/jquery.ui.mouse.js',
73           'lib/jquery.ui.slider.js',
74           'lib/underscore-min.js',
75
76           // Bootstrap files must preserve order.
77           'src/bootstrap/js/bootstrap-transition.js',
78           'src/bootstrap/js/bootstrap-alert.js',
79           'src/bootstrap/js/bootstrap-button.js',
80           'src/bootstrap/js/bootstrap-carousel.js',
81           'src/bootstrap/js/bootstrap-collapse.js',
82           'src/bootstrap/js/bootstrap-dropdown.js',
83           'src/bootstrap/js/bootstrap-modal.js',
84           'src/bootstrap/js/bootstrap-tooltip.js',
85           'src/bootstrap/js/bootstrap-popover.js',
86           'src/bootstrap/js/bootstrap-scrollspy.js',
87           'src/bootstrap/js/bootstrap-tab.js',
88           'src/bootstrap/js/bootstrap-typeahead.js',
89           'src/bootstrap/js/bootstrap-affix.js',
90
91           'src/javascripts/cowhide-core.js',
92           'src/javascripts/cowhide-widget.js',
93           'src/javascripts/cowhide-button.js',
94           'src/javascripts/cowhide-seat-selector.js',
95           'src/javascripts/cowhide-slider.js'
96         ], dest: 'dist/cowhide.js'
97       },
98       css_default: {
99         src: [
100           'dist/cowhide-default.css',
101           'lib/jquery.ui.slider.css'
102         ], dest: 'dist/cowhide-default.css'
103       },
104       css_default_night: {
105         src: [
106           'dist/cowhide-default-night.css',
107           'lib/jquery.ui.slider.css'
108         ], dest: 'dist/cowhide-default-night.css'
109       }
110     },
111     min: {
112       all: {
113         src: ['dist/cowhide.js'],
114         dest: 'dist/cowhide.min.js'
115       }
116     },
117     cssmin: {
118       default_theme: {
119         src: ['dist/cowhide-default.css'],
120         dest: 'dist/cowhide-default.min.css'
121       },
122       default_night_theme: {
123         src: ['dist/cowhide-default-night.css'],
124         dest: 'dist/cowhide-default-night.min.css'
125       }
126     },
127     copy: {
128       dist: {
129         files: {
130           'dist/images/': 'images/**',
131           'dist/README.md': 'README.md',
132           'dist/examples/calf/': 'examples/calf/**'
133         }
134       }
135     },
136     compress: {
137       dist: {
138         files: {
139           'dist/cowhide.zip': 'dist/**'
140         }
141       }
142     },
143     growl : {
144       started : {
145         message : "Grunt compilation started.",
146         title : "Cowhide"
147       },
148       finished : {
149           message : "Grunt compilation finished.",
150           title : "Cowhide"
151       }
152     }
153   });
154
155   // Default task.
156   grunt.loadNpmTasks('grunt-contrib-less');
157   grunt.loadNpmTasks('grunt-css');
158   grunt.loadNpmTasks('grunt-growl');
159   grunt.loadNpmTasks('grunt-contrib-copy');
160   grunt.loadNpmTasks('grunt-contrib-compress');
161   grunt.loadNpmTasks('grunt-clean')
162
163   grunt.registerTask('default', 'growl:started clean lint less concat min cssmin copy compress growl:finished');
164 };