| 12345678910111213141516171819202122232425262728293031323334 | /* * grunt * http://gruntjs.com/ * * Copyright (c) 2014 "Cowboy" Ben Alman * Licensed under the MIT license. * https://github.com/gruntjs/grunt/blob/master/LICENSE-MIT */'use strict';module.exports = function(grunt) {  // 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.log.write('Loading ' + gruntfile + '...');      grunt.util.spawn({        grunt: true,        args: ['--gruntfile', path.resolve(gruntfile)],      }, function(error, result) {        if (error) {          grunt.log.error().error(result.stdout).writeln();          next(new Error('Error running sub-gruntfile "' + gruntfile + '".'));        } else {          grunt.log.ok().verbose.ok(result.stdout);          next();        }      });    }, this.async());  });};
 |