Files
Max Lynch 46f4da7118 Task shit
2013-09-08 22:09:57 -05:00

101 lines
2.0 KiB
JavaScript

/*
__ __
| / \ |\ | | / `
| \__/ | \| | \__,
http://ionicframework.com/
A utility for starting and administering Ionic based mobile app projects.
Licensed under the Apache 2.0 license. See LICENSE For mroe.
Copyright 2013 Drifty (http://drifty.com/)
*/
var IonicStartTask = require('./lib/ionic/start.js').IonicStartTask;
var argv = require('optimist').argv;
var TASKS = [
{
title: 'start',
name: 'start',
usage: 'appname',
task: IonicStartTask
}
];
Ionic = function() {};
Ionic.prototype = {
_tryBuildingTask: function() {
if(argv._.length == 0) {
return false;
}
var taskName = argv._[0];
var task = this._getTaskWithName(taskName);
return {
task: task
}
},
_getTaskWithName: function(name) {
for(var i = 0; i < TASKS.length; i++) {
var t = TASKS[i];
if(t.name === name) {
return t;
}
}
},
_printGenericUsage: function() {
this._printIonic();
process.stderr.write('Usage: ionic task args\n\n===============\n\nAvailable tasks:\n\n');
for(var i = 0; i < TASKS.length; i++) {
var task = TASKS[i];
process.stderr.write(' ' + task.name + '\t\t' + task.task.HELP_LINE + '\n');
}
process.exit(1);
},
_printIonic: function() {
process.stdout.write('\n __ __ \n');
process.stdout.write('| / \\ |\\ | | / `\n' + '| \\__/ | \\| | \\__,\n\n');
},
// Prompt the user for a response
ask: function(question) {
var response;
process.stdout.write(question + ' ');
process.stdin.resume();
response = fs.readSync(process.stdin.fd, 100, 0, "utf8");
process.stdin.pause();
return response[0].trim();
},
_loadTaskRunner: function(which) {
},
run: function() {
var task = this._tryBuildingTask();
if(!task) {
return this._printGenericUsage();
}
console.log('Running', task.task.title, 'task...')
},
fail: function(msg) {
process.stderr.write(msg + '\n');
process.exit(1);
},
};
var ionic = new Ionic();
ionic.run();