Github user bso-intel commented on a diff in the pull request:
https://github.com/apache/cordova-lib/pull/395#discussion_r53545261
--- Diff: cordova-lib/src/cordova/platform.js ---
@@ -79,148 +79,156 @@ function addHelper(cmd, hooksRunner, projectRoot,
targets, opts) {
var platformsDir = path.join(projectRoot, 'platforms');
shell.mkdir('-p', platformsDir);
- return hooksRunner.fire('before_platform_' + cmd, opts)
- .then(function() {
- return promiseutil.Q_chainmap(targets, function(target) {
- // For each platform, download it and call its helper script.
- var parts = target.split('@');
- var platform = parts[0];
- var spec = parts[1];
-
- return Q.when().then(function() {
- if (!(platform in platforms)) {
- spec = platform;
- platform = null;
- }
+ return promiseutil.Q_chainmap(targets, function(target) {
+ // For each platform, download it and call its helper script.
+ var parts = target.split('@');
+ var platform = parts[0];
+ var spec = parts[1];
+ var platDetails = '';
+
+ return Q.when().then(function() {
+ if (!(platform in platforms)) {
+ spec = platform;
+ platform = null;
+ }
- if(platform === 'amazon-fireos') {
- events.emit('warn', 'amazon-fireos has been
deprecated. Please use android instead.');
- }
- if(platform === 'wp8') {
- events.emit('warn', 'wp8 has been deprecated. Please
use windows instead.');
- }
- if (platform && !spec && cmd == 'add') {
- events.emit('verbose', 'No version supplied.
Retrieving version from config.xml...');
- spec = getVersionFromConfigFile(platform, cfg);
- }
+ if(platform === 'amazon-fireos') {
+ events.emit('warn', 'amazon-fireos has been deprecated.
Please use android instead.');
+ }
+ if(platform === 'wp8') {
+ events.emit('warn', 'wp8 has been deprecated. Please use
windows instead.');
+ }
+ if (platform && !spec && cmd == 'add') {
+ events.emit('verbose', 'No version supplied. Retrieving
version from config.xml...');
+ spec = getVersionFromConfigFile(platform, cfg);
+ }
+
+ // If --save/autosave on && no version specified, use the
pinned version
+ // e.g: 'cordova platform add android --save', 'cordova
platform update android --save'
+ if( (opts.save || autosave) && !spec ){
+ spec = platforms[platform].version;
+ }
- // If --save/autosave on && no version specified, use the
pinned version
- // e.g: 'cordova platform add android --save', 'cordova
platform update android --save'
- if( (opts.save || autosave) && !spec ){
- spec = platforms[platform].version;
+ if (spec) {
+ var maybeDir = cordova_util.fixRelativePath(spec);
+ if (cordova_util.isDirectory(maybeDir)) {
+ return getPlatformDetailsFromDir(maybeDir, platform);
+ }
+ }
+ return downloadPlatform(projectRoot, platform, spec, opts);
+ }).then(function(platformDetails) {
+ platDetails = platformDetails;
+ var hookOpts = {
+ platforms :[platDetails.platform],
+ nohooks :[opts.nohooks]
+ };
+ return hooksRunner.fire('before_platform_' + cmd, hookOpts);
--- End diff --
Now, the behavior is a little different than before.
Previously, the before_platform_add hook ran only once for all target
platforms.
This hook could be platform agnostic.
However, by moving the hookRunner inside per platform, this hook will run
every time each platform is added.
Not sure whether this is an issue or not, though.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]