1 module.exports = function(grunt) {
3 // Project configuration.
5 pkg: grunt.file.readJSON('package.json'),
7 // copy the files we care about from bower-fetched dependencies
8 // into our build directory
18 'bower_components/angular/angular.min.js',
19 'bower_components/angular/angular.min.js.map',
20 'bower_components/angular-animate/angular-animate.min.js',
21 'bower_components/angular-animate/angular-animate.min.js.map',
22 'bower_components/angular-sanitize/angular-sanitize.min.js',
23 'bower_components/angular-sanitize/angular-sanitize.min.js.map',
24 'bower_components/angular-route/angular-route.min.js',
25 'bower_components/angular-route/angular-route.min.js.map',
26 'bower_components/angular-bootstrap/ui-bootstrap.min.js',
27 'bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
28 'bower_components/angular-hotkeys/build/hotkeys.min.js',
29 'bower_components/angular-file-saver/dist/angular-file-saver.bundle.min.js',
30 'bower_components/angular-location-update/angular-location-update.min.js',
31 'bower_components/angular-tree-control/angular-tree-control.js',
32 'bower_components/ngtoast/dist/ngToast.min.js',
33 'bower_components/jquery/dist/jquery.min.js',
45 'bower_components/angular-hotkeys/build/hotkeys.min.css',
46 'bower_components/bootstrap/dist/css/bootstrap.min.css',
47 'bower_components/ngtoast/dist/ngToast.min.css',
48 'bower_components/ngtoast/dist/ngToast-animations.min.css',
49 'bower_components/angular-tree-control/css/tree-control.css',
50 'bower_components/angular-tree-control/css/tree-control-attribute.css',
57 dest : 'build/fonts/',
62 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot',
63 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg',
64 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf',
65 'bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff'
72 dest : 'build/images/',
77 'bower_components/angular-tree-control/images/sample.png',
78 'bower_components/angular-tree-control/images/node-opened-2.png',
79 'bower_components/angular-tree-control/images/folder.png',
80 'bower_components/angular-tree-control/images/node-closed.png',
81 'bower_components/angular-tree-control/images/node-closed-light.png',
82 'bower_components/angular-tree-control/images/node-opened.png',
83 'bower_components/angular-tree-control/images/node-opened-light.png',
84 'bower_components/angular-tree-control/images/folder-closed.png',
85 'bower_components/angular-tree-control/images/node-closed-2.png',
86 'bower_components/angular-tree-control/images/file.png'
92 // combine our CSS deps
93 // note: minification also supported, but not required (yet).
97 'build/css/evergreen-staff-client-deps.<%= pkg.version %>.min.css' : [
98 'build/css/hotkeys.min.css',
99 'build/css/bootstrap.min.css',
100 'build/css/ngToast.min.css',
101 'build/css/ngToast-animations.min.css',
102 'build/css/tree-control.css',
103 'build/css/tree-control-attribute.css',
109 // concatenation + minification
112 banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
116 // These are concatenated in order in the final build file.
117 // The order is important.
118 'build/js/jquery.min.js',
119 'build/js/angular.min.js',
120 'build/js/angular-animate.min.js',
121 'build/js/angular-sanitize.min.js',
122 'build/js/angular-route.min.js',
123 'build/js/ui-bootstrap.min.js',
124 'build/js/ui-bootstrap-tpls.min.js',
125 'build/js/hotkeys.min.js',
126 'build/js/angular-tree-control.js',
127 'build/js/ngToast.min.js',
128 // NOTE: OpenSRF must be installed
129 '/openils/lib/javascript/JSON_v1.js',
130 '/openils/lib/javascript/opensrf.js',
131 '/openils/lib/javascript/opensrf_ws.js',
133 'services/strings.js',
141 'services/startup.js',
145 'services/coresvc.js',
146 'services/navbar.js',
147 'services/statusbar.js',
151 dest: 'build/js/<%= pkg.name %>.<%= pkg.version %>.min.js'
155 // bare concat operation; useful for testing concat w/o minification
156 // to more easily detect if concat order is incorrect
165 // Generate test/data/IDL2js.js for unit tests.
166 // note: the output of this script is *not* part of the final build.
168 command : 'cd test/data && perl idl2js.pl',
171 // Remove the unit test IDL2js.js file. We don't need it after testing
173 command : 'rm test/data/IDL2js.js',
177 // unit tests configuration
180 configFile: 'test/karma.conf.js',
181 //background: true // for now, visually babysit unit tests
186 // tell concat about our uglify build options (instead of repeating them)
187 config.concat.build = config.uglify.build;
189 // apply our configuration
190 grunt.initConfig(config);
193 grunt.loadNpmTasks('grunt-contrib-uglify');
194 grunt.loadNpmTasks('grunt-contrib-concat');
195 grunt.loadNpmTasks('grunt-contrib-copy');
196 grunt.loadNpmTasks('grunt-contrib-cssmin');
197 grunt.loadNpmTasks('grunt-karma');
198 grunt.loadNpmTasks('grunt-exec');
200 // note: "grunt concat" is not requried
201 grunt.registerTask('build', ['copy', 'cssmin', 'uglify']);
203 // test only, no minification
204 grunt.registerTask('test', ['copy', 'exec:idl2js', 'karma:unit', 'exec:rmidl2js']);
206 // note: "grunt concat" is not requried
207 grunt.registerTask('all', ['test', 'cssmin', 'uglify']);
211 // vim: ts=2:sw=2:softtabstop=2