You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2014/03/27 22:57:18 UTC
[3/8] git commit: CB-6357 platform: Refactor into distinct functions
CB-6357 platform: Refactor into distinct functions
Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/10d073b4
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/10d073b4
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/10d073b4
Branch: refs/heads/master
Commit: 10d073b40f2e453702182aeadd70680adbc2b0ba
Parents: 55c278c
Author: Josh Soref <js...@blackberry.com>
Authored: Mon Mar 24 17:29:57 2014 -0400
Committer: Josh Soref <js...@blackberry.com>
Committed: Thu Mar 27 00:03:47 2014 -0400
----------------------------------------------------------------------
src/platform.js | 92 +++++++++++++++++++++++++++++-----------------------
1 file changed, 51 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/10d073b4/src/platform.js
----------------------------------------------------------------------
diff --git a/src/platform.js b/src/platform.js
index cd2d29a..96add30 100644
--- a/src/platform.js
+++ b/src/platform.js
@@ -40,36 +40,9 @@ function getVersionFromScript(script, defaultValue) {
return versionPromise;
}
-// Returns a promise.
-module.exports = function platform(command, targets) {
- var projectRoot = cordova_util.cdProjectRoot();
-
- var hooks = new hooker(projectRoot);
-
- if (arguments.length === 0) command = 'ls';
- if (targets) {
- if (!(targets instanceof Array)) targets = [targets];
- var err;
- targets.forEach(function(t) {
- if (!(t in platforms)) {
- err = new CordovaError('Platform "' + t + '" not recognized as a core cordova platform. See "platform list".');
- }
- });
- if (err) return Q.reject(err);
- } else {
- if (command == 'add' || command == 'rm') {
- return Q.reject(new CordovaError('You need to qualify `add` or `remove` with one or more platforms!'));
- }
- }
-
+function add(hooks, projectRoot, targets, opts) {
var xml = cordova_util.projectConfig(projectRoot);
var cfg = new ConfigParser(xml);
- var opts = {
- platforms:targets
- };
-
- switch(command) {
- case 'add':
if (!targets || !targets.length) {
return Q.reject(new CordovaError('No platform specified. Please specify a platform to add. See "platform list".'));
}
@@ -92,10 +65,9 @@ module.exports = function platform(command, targets) {
.then(function() {
return hooks.fire('after_platform_add', opts);
});
+};
- break;
- case 'rm':
- case 'remove':
+function remove(hooks, projectRoot, targets, opts) {
if (!targets || !targets.length) {
return Q.reject(new CordovaError('No platform[s] specified. Please specify platform[s] to remove. See "platform list".'));
}
@@ -109,10 +81,9 @@ module.exports = function platform(command, targets) {
}).then(function() {
return hooks.fire('after_platform_rm', opts);
});
+}
- break;
- case 'update':
- case 'up':
+function update(hooks, projectRoot, targets, opts) {
// Shell out to the update script provided by the named platform.
if (!targets || !targets.length) {
return Q.reject(new CordovaError('No platform specified. Please specify a platform to update. See "platform list".'));
@@ -148,8 +119,9 @@ module.exports = function platform(command, targets) {
});
});
}
- break;
- case 'check':
+}
+
+function check(hooks, projectRoot) {
var platforms_on_fs = cordova_util.listPlatforms(projectRoot);
return hooks.fire('before_platform_ls')
.then(function() {
@@ -183,11 +155,9 @@ module.exports = function platform(command, targets) {
}).then(function() {
return hooks.fire('after_platform_ls');
});
+}
- break;
- case 'ls':
- case 'list':
- default:
+function list(hooks, projectRoot) {
var platforms_on_fs = cordova_util.listPlatforms(projectRoot);
return hooks.fire('before_platform_ls')
.then(function() {
@@ -223,8 +193,48 @@ module.exports = function platform(command, targets) {
}).then(function() {
return hooks.fire('after_platform_ls');
});
+}
+
+// Returns a promise.
+module.exports = function platform(command, targets) {
+ var projectRoot = cordova_util.cdProjectRoot();
+
+ var hooks = new hooker(projectRoot);
+
+ if (arguments.length === 0) command = 'ls';
+ if (targets) {
+ if (!(targets instanceof Array)) targets = [targets];
+ var err;
+ targets.forEach(function(t) {
+ if (!(t in platforms)) {
+ err = new CordovaError('Platform "' + t + '" not recognized as a core cordova platform. See "platform list".');
+ }
+ });
+ if (err) return Q.reject(err);
+ } else {
+ if (command == 'add' || command == 'rm') {
+ return Q.reject(new CordovaError('You need to qualify `add` or `remove` with one or more platforms!'));
+ }
+ }
- break;
+ var opts = {
+ platforms:targets
+ };
+ switch(command) {
+ case 'add':
+ return add(hooks, projectRoot, targets, opts);
+ case 'rm':
+ case 'remove':
+ return remove(hooks, projectRoot, targets, opts);
+ case 'update':
+ case 'up':
+ return update(hooks, projectRoot, targets, opts);
+ case 'check':
+ return check(hooks, projectRoot);
+ case 'ls':
+ case 'list':
+ default:
+ return list(hooks, projectRoot);
}
};