123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
-
-
- 'use strict';
-
-
- var path = require('path');
-
-
- require('coffee-script');
-
-
- var grunt = module.exports = {};
-
-
- function gRequire(name) {
- return grunt[name] = require('./grunt/' + name);
- }
-
- var util = require('grunt-legacy-util');
- grunt.util = util;
- grunt.util.task = require('./util/task');
-
- var Log = require('grunt-legacy-log').Log;
- var log = new Log({grunt: grunt});
- grunt.log = log;
-
- gRequire('template');
- gRequire('event');
- var fail = gRequire('fail');
- gRequire('file');
- var option = gRequire('option');
- var config = gRequire('config');
- var task = gRequire('task');
- var help = gRequire('help');
- gRequire('cli');
- var verbose = grunt.verbose = log.verbose;
-
-
- grunt.package = require('../package.json');
- grunt.version = grunt.package.version;
-
-
- function gExpose(obj, methodName, newMethodName) {
- grunt[newMethodName || methodName] = obj[methodName].bind(obj);
- }
- gExpose(task, 'registerTask');
- gExpose(task, 'registerMultiTask');
- gExpose(task, 'registerInitTask');
- gExpose(task, 'renameTask');
- gExpose(task, 'loadTasks');
- gExpose(task, 'loadNpmTasks');
- gExpose(config, 'init', 'initConfig');
- gExpose(fail, 'warn');
- gExpose(fail, 'fatal');
-
-
-
- grunt.tasks = function(tasks, options, done) {
-
- option.init(options);
-
-
- var _tasks, _options;
- if (option('version')) {
-
- log.writeln('grunt v' + grunt.version);
-
- if (option('verbose')) {
-
- verbose.writeln('Install path: ' + path.resolve(__dirname, '..'));
-
-
- grunt.log.muted = true;
-
- grunt.task.init([], {help: true});
-
- grunt.log.muted = false;
-
-
- _tasks = Object.keys(grunt.task._tasks).sort();
- verbose.writeln('Available tasks: ' + _tasks.join(' '));
-
-
- _options = [];
- Object.keys(grunt.cli.optlist).forEach(function(long) {
- var o = grunt.cli.optlist[long];
- _options.push('--' + (o.negate ? 'no-' : '') + long);
- if (o.short) { _options.push('-' + o.short); }
- });
- verbose.writeln('Available options: ' + _options.join(' '));
- }
-
- return;
- }
-
-
- log.initColors();
-
-
- if (option('help')) {
- help.display();
- return;
- }
-
-
- verbose.header('Initializing').writeflags(option.flags(), 'Command-line options');
-
-
- var tasksSpecified = tasks && tasks.length > 0;
- tasks = task.parseArgs([tasksSpecified ? tasks : 'default']);
-
-
- task.init(tasks);
-
- verbose.writeln();
- if (!tasksSpecified) {
- verbose.writeln('No tasks specified, running default tasks.');
- }
- verbose.writeflags(tasks, 'Running tasks');
-
-
- var uncaughtHandler = function(e) {
- fail.fatal(e, fail.code.TASK_FAILURE);
- };
- process.on('uncaughtException', uncaughtHandler);
-
-
- task.options({
- error: function(e) {
- fail.warn(e, fail.code.TASK_FAILURE);
- },
- done: function() {
-
-
-
-
- process.removeListener('uncaughtException', uncaughtHandler);
-
-
- fail.report();
-
- if (done) {
-
- done();
- } else {
-
- util.exit(0);
- }
- }
- });
-
-
-
- tasks.forEach(function(name) { task.run(name); });
-
-
- task.start({asyncDone:true});
- };
|