diff --git a/platforms.js b/platforms.js index 5afb91a7c..370d056dd 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' + version: '3.2.0', + 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' + version: '3.2.0', + 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' + version: '3.2.0', + 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' + version: '3.2.0', + subdirectory: 'windows8' } }; 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'; 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. diff --git a/src/metadata/windows8_parser.js b/src/metadata/windows8_parser.js index bcbee53fd..bc41d3475 100644 --- a/src/metadata/windows8_parser.js +++ b/src/metadata/windows8_parser.js @@ -183,7 +183,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); }, @@ -287,9 +287,6 @@ module.exports.prototype = { return Q.reject(e); } // overrides (merges) are handled in update_www() - // CB-5340 Windows8 build does no write cordova_plugins.js - //var libDir = path.join(util.libDirectory, 'windows8', 'cordova', require('../../platforms').windows8.version); - //this.update_www(libDir); this.update_staging(); this.add_bom(); diff --git a/src/metadata/wp7_parser.js b/src/metadata/wp7_parser.js index 0accab2fb..33fc75639 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 3516b915a..edda64dd6 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); }, diff --git a/src/platform.js b/src/platform.js index d25920a43..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"].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' : '';