From cf7cd9cb3a33a207b4269a47ebfc8d2da0f50520 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Sun, 8 Sep 2013 22:47:18 -0500 Subject: [PATCH] Start task in own task --- tools/ionic/ionic.js | 23 ++++++----------------- tools/ionic/lib/ionic/start.js | 19 ++++++++++++++++++- tools/ionic/lib/ionic/task.js | 12 ++++++++++++ 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/tools/ionic/ionic.js b/tools/ionic/ionic.js index 9c4aaba2ab..328e538d22 100644 --- a/tools/ionic/ionic.js +++ b/tools/ionic/ionic.js @@ -6,7 +6,7 @@ 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. +Licensed under the Apache 2.0 license. See LICENSE For more. Copyright 2013 Drifty (http://drifty.com/) */ @@ -33,11 +33,7 @@ Ionic.prototype = { } var taskName = argv._[0]; - var task = this._getTaskWithName(taskName); - - return { - task: task - } + return this._getTaskWithName(taskName); }, _getTaskWithName: function(name) { @@ -66,16 +62,6 @@ Ionic.prototype = { 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) { }, @@ -86,7 +72,10 @@ Ionic.prototype = { return this._printGenericUsage(); } - console.log('Running', task.task.title, 'task...') + console.log('Running', task.title, 'task...') + + var taskObj = new task.task(); + taskObj.run(this); }, fail: function(msg) { diff --git a/tools/ionic/lib/ionic/start.js b/tools/ionic/lib/ionic/start.js index 2a176a9ffe..e6904f76e0 100644 --- a/tools/ionic/lib/ionic/start.js +++ b/tools/ionic/lib/ionic/start.js @@ -12,9 +12,16 @@ IonicStartTask.HELP_LINE = 'Start a new Ionic project with the given name.'; IonicStartTask.prototype = new IonicTask(); +IonicStartTask.prototype._printUsage = function() { + process.stderr.write('ionic start appname\n'); +} IonicStartTask.prototype.run = function(ionic) { - this.appName = argv._[0]; + if(argv._.length < 2) { + ionic.fail('No app name specified'); + } + + this.appName = argv._[1]; this.targetPath = path.resolve(this.appName); // Make sure to create this, or ask them if they want to override it @@ -37,5 +44,15 @@ IonicStartTask.prototype._writeTemplateFolder = function() { }); }; +IonicStartTask.prototype._checkTargetPath = function() { + if(fs.existsSync(this.targetPath)) { + var resp = this.ask('The ' + this.targetPath + ' directory already exists. Overwrite files? (y/n)') + if(resp === 'y') { + return true; + } + return false; + } + return true; +}; exports.IonicStartTask = IonicStartTask; \ No newline at end of file diff --git a/tools/ionic/lib/ionic/task.js b/tools/ionic/lib/ionic/task.js index 3b7479f509..20b74b4c1f 100644 --- a/tools/ionic/lib/ionic/task.js +++ b/tools/ionic/lib/ionic/task.js @@ -1,7 +1,19 @@ +var fs = require('fs'); + var IonicTask = function() { }; IonicTask.prototype = { + // 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(); + }, run: function(ionic) { } };