summaryrefslogtreecommitdiff
path: root/tools/eliminator/node_modules/coffee-script/lib/cake.js
diff options
context:
space:
mode:
authormax99x <max99x@gmail.com>2011-08-23 05:23:55 +0300
committermax99x <max99x@gmail.com>2011-08-23 05:23:55 +0300
commit4d12c91bfb26979d00714843a038f916629e040d (patch)
treef44f27a9ef31e484eda3f9a22bcbe77d674860b8 /tools/eliminator/node_modules/coffee-script/lib/cake.js
parent4426e4b34c4dbbcfeab757cfc657b4a925cfca13 (diff)
Added a redundant-variable eliminator script and its dependencies.
Diffstat (limited to 'tools/eliminator/node_modules/coffee-script/lib/cake.js')
-rwxr-xr-xtools/eliminator/node_modules/coffee-script/lib/cake.js76
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);