diff options
author | max99x <max99x@gmail.com> | 2011-08-23 05:23:55 +0300 |
---|---|---|
committer | max99x <max99x@gmail.com> | 2011-08-23 05:23:55 +0300 |
commit | 4d12c91bfb26979d00714843a038f916629e040d (patch) | |
tree | f44f27a9ef31e484eda3f9a22bcbe77d674860b8 /tools/eliminator/node_modules/coffee-script/lib/cake.js | |
parent | 4426e4b34c4dbbcfeab757cfc657b4a925cfca13 (diff) |
Added a redundant-variable eliminator script and its dependencies.
Diffstat (limited to 'tools/eliminator/node_modules/coffee-script/lib/cake.js')
-rwxr-xr-x | tools/eliminator/node_modules/coffee-script/lib/cake.js | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tools/eliminator/node_modules/coffee-script/lib/cake.js b/tools/eliminator/node_modules/coffee-script/lib/cake.js new file mode 100755 index 00000000..6619934e --- /dev/null +++ b/tools/eliminator/node_modules/coffee-script/lib/cake.js @@ -0,0 +1,76 @@ +(function() { + var CoffeeScript, fs, helpers, missingTask, oparse, options, optparse, path, printTasks, switches, tasks; + fs = require('fs'); + path = require('path'); + helpers = require('./helpers'); + optparse = require('./optparse'); + CoffeeScript = require('./coffee-script'); + tasks = {}; + options = {}; + switches = []; + oparse = null; + helpers.extend(global, { + task: function(name, description, action) { + var _ref; + if (!action) { + _ref = [description, action], action = _ref[0], description = _ref[1]; + } + return tasks[name] = { + name: name, + description: description, + action: action + }; + }, + option: function(letter, flag, description) { + return switches.push([letter, flag, description]); + }, + invoke: function(name) { + if (!tasks[name]) { + missingTask(name); + } + return tasks[name].action(options); + } + }); + exports.run = function() { + return path.exists('Cakefile', function(exists) { + var arg, args, _i, _len, _ref, _results; + if (!exists) { + throw new Error("Cakefile not found in " + (process.cwd())); + } + args = process.argv.slice(2); + CoffeeScript.run(fs.readFileSync('Cakefile').toString(), { + filename: 'Cakefile' + }); + oparse = new optparse.OptionParser(switches); + if (!args.length) { + return printTasks(); + } + options = oparse.parse(args); + _ref = options.arguments; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + arg = _ref[_i]; + _results.push(invoke(arg)); + } + return _results; + }); + }; + printTasks = function() { + var desc, name, spaces, task; + console.log(''); + for (name in tasks) { + task = tasks[name]; + spaces = 20 - name.length; + spaces = spaces > 0 ? Array(spaces + 1).join(' ') : ''; + desc = task.description ? "# " + task.description : ''; + console.log("cake " + name + spaces + " " + desc); + } + if (switches.length) { + return console.log(oparse.help()); + } + }; + missingTask = function(task) { + console.log("No such task: \"" + task + "\""); + return process.exit(1); + }; +}).call(this); |