From a6d8d6550a4a41581712c144d6b0ca5b08bc28e3 Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Thu, 14 Nov 2013 22:05:09 +0100 Subject: [PATCH 1/5] Append subdirectory for concerned platforms --- platforms.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/platforms.js b/platforms.js index bcb303262..1e439c04a 100644 --- a/platforms.js +++ b/platforms.js @@ -31,17 +31,20 @@ module.exports = { 'wp7' : { parser : './src/metadata/wp7_parser', url : 'https://git-wip-us.apache.org/repos/asf?p=cordova-wp8.git', - version: '3.2.0-rc1' + version: '3.2.0-rc1', + subdirectory: 'wp7' }, 'wp8' : { parser : './src/metadata/wp8_parser', url : 'https://git-wip-us.apache.org/repos/asf?p=cordova-wp8.git', - version: '3.2.0-rc1' + version: '3.2.0-rc1', + subdirectory: 'wp8' }, 'blackberry10' : { parser : './src/metadata/blackberry10_parser', url : 'https://git-wip-us.apache.org/repos/asf?p=cordova-blackberry.git', - version: '3.2.0-rc1' + version: '3.2.0-rc1', + subdirectory: 'blackberry10' }, 'www':{ url : 'https://git-wip-us.apache.org/repos/asf?p=cordova-app-hello-world.git', @@ -55,7 +58,8 @@ module.exports = { 'windows8':{ parser: './src/metadata/windows8_parser', url : 'https://git-wip-us.apache.org/repos/asf?p=cordova-windows.git', - version: '3.2.0-rc1' + version: '3.2.0-rc1', + subdirectory: 'windows8' } }; From 86802d8f3ea422ed5478bad18f0fb2c6b4deb817 Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Thu, 14 Nov 2013 22:06:16 +0100 Subject: [PATCH 2/5] Make lazy_load method aware of subdirectory field --- src/lazy_load.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lazy_load.js b/src/lazy_load.js index c53e19fcb..e16dd7022 100644 --- a/src/lazy_load.js +++ b/src/lazy_load.js @@ -46,9 +46,12 @@ module.exports = { custom:function(url, id, platform, version) { var download_dir = (platform == 'wp7' || platform == 'wp8' ? path.join(util.libDirectory, 'wp', id, version) : path.join(util.libDirectory, platform, id, version)); + + var lib_dir = platforms[platform] && platforms[platform].subdirectory ? path.join(download_dir, platforms[platform].subdirectory) : download_dir; + if (fs.existsSync(download_dir)) { events.emit('verbose', id + ' library for "' + platform + '" already exists. No need to download. Continuing.'); - return Q(download_dir); + return Q(lib_dir); } events.emit('log', 'Downloading ' + id + ' library for ' + platform + '...'); return hooker.fire('before_library_download', { @@ -99,14 +102,14 @@ module.exports = { events.emit('log', 'Download complete'); var entries = fs.readdirSync(download_dir); var entry = path.join(download_dir, entries[0]); - shell.mv('-f', path.join(entry, (platform=='blackberry10'?'blackberry10':''), '*'), download_dir); + shell.mv('-f', path.join(entry, '*'), download_dir); shell.rm('-rf', entry); d.resolve(hooker.fire('after_library_download', { platform:platform, url:url, id:id, version:version, - path:download_dir, + path: lib_dir, size:size, symlink:false })); @@ -116,16 +119,18 @@ module.exports = { // Local path. // Do nothing here; users of this code should be using the returned path. download_dir = uri.protocol && uri.protocol[1] == ':' ? uri.href : uri.path; + lib_dir = platforms[platform] && platforms[platform].subdirectory ? path.join(download_dir, platforms[platform].subdirectory) : download_dir; + d.resolve(hooker.fire('after_library_download', { platform:platform, url:url, id:id, version:version, - path:download_dir, + path: lib_dir, symlink:false })); } - return d.promise.then(function() { return download_dir; }); + return d.promise.then(function () { return lib_dir; }); }); }, // Returns a promise for the path to the lazy-loaded directory. From 20faff115b7f8b647e964e26fb0b9dd40f2bd31c Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Thu, 14 Nov 2013 22:06:42 +0100 Subject: [PATCH 3/5] Remove platform check in platform add and update --- src/platform.js | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/platform.js b/src/platform.js index 214d396d2..536969c59 100644 --- a/src/platform.js +++ b/src/platform.js @@ -116,10 +116,6 @@ module.exports = function platform(command, targets) { .then(function() { return lazy_load.based_on_config(projectRoot, plat); }).then(function(libDir) { - // Check for platforms are in subdirectories into repositories - if (["wp7", "wp8", "windows8", "windows81", "blackberry10"].indexOf(plat) !== -1) - libDir = path.join(libDir, target); - var script = path.join(libDir, 'bin', 'update'); var d = Q.defer(); child_process.exec(script + ' "' + path.join(projectRoot, 'platforms', plat) + '"', function(err, stdout, stderr) { @@ -226,10 +222,6 @@ function call_into_create(target, projectRoot, cfg, libDir, template_dir) { events.emit('verbose', 'Checking if platform "' + target + '" passes minimum requirements...'); return module.exports.supports(projectRoot, target) .then(function() { - // Check for platforms are in subdirectories into repositories - if (["wp7", "wp8", "windows8", "windows81", "blackberry10"].indexOf(target) !== -1) - libDir = path.join(libDir, target); - // Create a platform app using the ./bin/create scripts that exist in each repo. var bin = path.join(libDir, 'bin', 'create'); var args = (target=='ios') ? '--arc' : ''; From abab971ed6d30460fb3474c784de9fcea6b7351f Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Thu, 14 Nov 2013 22:07:06 +0100 Subject: [PATCH 4/5] Update parsers to match new libDir returned by lazy_load --- src/metadata/windows8_parser.js | 4 +--- src/metadata/wp7_parser.js | 2 +- src/metadata/wp8_parser.js | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/metadata/windows8_parser.js b/src/metadata/windows8_parser.js index dbddf3021..968ba1c79 100644 --- a/src/metadata/windows8_parser.js +++ b/src/metadata/windows8_parser.js @@ -146,7 +146,7 @@ module.exports.prototype = { // Used for creating platform_www in projects created by older versions. cordovajs_path:function(libDir) { - var jsPath = path.join(libDir, 'windows8', "template", 'www', 'cordova.js'); + var jsPath = path.join(libDir, "template", 'www', 'cordova.js'); return path.resolve(jsPath); }, @@ -249,8 +249,6 @@ module.exports.prototype = { return Q.reject(e); } // overrides (merges) are handled in update_www() - var libDir = path.join(util.libDirectory, 'windows8', 'cordova', require('../../platforms').windows8.version); - this.update_www(libDir); this.update_staging(); util.deleteSvnFolders(this.www_dir()); return Q(); diff --git a/src/metadata/wp7_parser.js b/src/metadata/wp7_parser.js index 4cfb63d77..55023aac4 100644 --- a/src/metadata/wp7_parser.js +++ b/src/metadata/wp7_parser.js @@ -156,7 +156,7 @@ module.exports.prototype = { // Used for creating platform_www in projects created by older versions. cordovajs_path:function(libDir) { - var jsPath = path.join(libDir, 'common', 'www', 'cordova.js'); + var jsPath = path.join(libDir, '..', 'common', 'www', 'cordova.js'); return path.resolve(jsPath); }, diff --git a/src/metadata/wp8_parser.js b/src/metadata/wp8_parser.js index 401e3c755..39fc3f25b 100644 --- a/src/metadata/wp8_parser.js +++ b/src/metadata/wp8_parser.js @@ -160,7 +160,7 @@ module.exports.prototype = { // Used for creating platform_www in projects created by older versions. cordovajs_path:function(libDir) { - var jsPath = path.join(libDir, 'common', 'www', 'cordova.js'); + var jsPath = path.join(libDir, '..', 'common', 'www', 'cordova.js'); return path.resolve(jsPath); }, From 372e598f41350646ef52f1fba021e5e7007f1ffa Mon Sep 17 00:00:00 2001 From: SomaticIT Date: Thu, 14 Nov 2013 22:07:30 +0100 Subject: [PATCH 5/5] Update tests to match improvements --- spec/metadata/windows8_parser.spec.js | 5 ----- spec/platform.spec.js | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/spec/metadata/windows8_parser.spec.js b/spec/metadata/windows8_parser.spec.js index 87a26750a..1187ac695 100644 --- a/spec/metadata/windows8_parser.spec.js +++ b/spec/metadata/windows8_parser.spec.js @@ -228,7 +228,6 @@ describe('windows8 project parser', function() { var config, www, overrides, staging, svn; beforeEach(function() { config = spyOn(p, 'update_from_config'); - www = spyOn(p, 'update_www'); staging = spyOn(p, 'update_staging'); svn = spyOn(util, 'deleteSvnFolders'); }); @@ -243,10 +242,6 @@ describe('windows8 project parser', function() { expect(err).toEqual(err); }); }); - it('should call update_www', function() { - p.update_project(); - expect(www).toHaveBeenCalled(); - }); it('should call update_staging', function() { p.update_project(); expect(staging).toHaveBeenCalled(); diff --git a/spec/platform.spec.js b/spec/platform.spec.js index c9fee8014..6df69a160 100644 --- a/spec/platform.spec.js +++ b/spec/platform.spec.js @@ -76,9 +76,9 @@ describe('platform command', function() { fakeLazyLoad = function(id, platform, version) { if (platform == 'wp7' || platform == 'wp8') { - return Q(path.join('lib', 'wp', id, version)); + return Q(path.join('lib', 'wp', id, version, platform)); } else { - return Q(path.join('lib', platform, id, version)); + return Q(path.join('lib', platform, id, version, platforms[platform] && platforms[platform].subdirectory ? platforms[platform].subdirectory : '')); } }; lazyLoadVersion = '3.1.0';