12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*
- * grunt
- * http://gruntjs.com/
- *
- * Copyright (c) 2012 "Cowboy" Ben Alman
- * Licensed under the MIT license.
- * https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT
- */
- 'use strict';
- module.exports = function(grunt) {
- // Project configuration.
- grunt.initConfig({
- nodeunit: {
- all: ['test/{grunt,tasks,util}/**/*.js']
- },
- jshint: {
- gruntfile: ['Gruntfile.js'],
- libs_n_tests: ['lib/**/*.js', '<%= nodeunit.all %>'],
- subgrunt: ['<%= subgrunt.all %>'],
- options: {
- curly: true,
- eqeqeq: true,
- immed: true,
- latedef: true,
- newcap: true,
- noarg: true,
- sub: true,
- undef: true,
- unused: true,
- boss: true,
- eqnull: true,
- node: true,
- es5: true
- }
- },
- watch: {
- gruntfile: {
- files: ['<%= jshint.gruntfile %>'],
- tasks: ['jshint:gruntfile']
- },
- libs_n_tests: {
- files: ['<%= jshint.libs_n_tests %>'],
- tasks: ['jshint:libs_n_tests', 'nodeunit']
- },
- subgrunt: {
- files: ['<%= subgrunt.all %>'],
- tasks: ['jshint:subgrunt', 'subgrunt']
- }
- },
- subgrunt: {
- all: ['test/gruntfile/*.js']
- },
- });
- // These plugins provide necessary tasks.
- grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.loadNpmTasks('grunt-contrib-nodeunit');
- grunt.loadNpmTasks('grunt-contrib-watch');
- // "npm test" runs these tasks
- grunt.registerTask('test', ['jshint', 'nodeunit', 'subgrunt']);
- // Default task.
- grunt.registerTask('default', ['test']);
- // Run sub-grunt files, because right now, testing tasks is a pain.
- grunt.registerMultiTask('subgrunt', 'Run a sub-gruntfile.', function() {
- var path = require('path');
- grunt.util.async.forEachSeries(this.filesSrc, function(gruntfile, next) {
- grunt.util.spawn({
- grunt: true,
- args: ['--gruntfile', path.resolve(gruntfile)],
- }, function(error, result) {
- if (error) {
- grunt.log.error(result.stdout).writeln();
- next(new Error('Error running sub-gruntfile "' + gruntfile + '".'));
- } else {
- grunt.verbose.ok(result.stdout);
- next();
- }
- });
- }, this.async());
- });
- };
|