You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2013/03/05 01:20:33 UTC
[8/10] git commit: test fixes and convention tweaks following merging
in "merges" functionality
test fixes and convention tweaks following merging in "merges" functionality
Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/ec020e7f
Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/ec020e7f
Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/ec020e7f
Branch: refs/heads/master
Commit: ec020e7f4f2903566d1a1907f545241f9dc8fef0
Parents: c20111f
Author: Fil Maj <ma...@gmail.com>
Authored: Mon Mar 4 16:06:15 2013 -0800
Committer: Fil Maj <ma...@gmail.com>
Committed: Mon Mar 4 16:06:15 2013 -0800
----------------------------------------------------------------------
spec/build.spec.js | 199 --------------------------
spec/metadata/android_parser.spec.js | 48 +++----
spec/metadata/blackberry_parser.spec.js | 52 +++----
spec/metadata/ios_parser.spec.js | 48 +++----
spec/platform.spec.js | 3 +-
src/metadata/android_parser.js | 17 ++-
src/metadata/blackberry_parser.js | 13 +-
src/metadata/ios_parser.js | 15 +-
src/platform.js | 48 ++----
9 files changed, 100 insertions(+), 343 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/spec/build.spec.js
----------------------------------------------------------------------
diff --git a/spec/build.spec.js b/spec/build.spec.js
deleted file mode 100644
index 9eeffb5..0000000
--- a/spec/build.spec.js
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
-*/
-var cordova = require('../cordova'),
- et = require('elementtree'),
- shell = require('shelljs'),
- path = require('path'),
- fs = require('fs'),
- config_parser = require('../src/config_parser'),
- android_parser = require('../src/metadata/android_parser'),
- ios_parser = require('../src/metadata/ios_parser'),
- blackberry_parser = require('../src/metadata/blackberry_parser'),
- hooker = require('../src/hooker'),
- fixtures = path.join(__dirname, 'fixtures'),
- hooks = path.join(fixtures, 'hooks'),
- tempDir = path.join(__dirname, '..', 'temp'),
- cordova_project = path.join(fixtures, 'projects', 'cordova'),
- ios_project_path = path.join(cordova_project, 'platforms', 'ios'),
- blackberry_project_path = path.join(cordova_project, 'platforms', 'blackberry'),
- www_config = path.join(cordova_project, 'www', 'config.xml');
-
-
-
-var cwd = process.cwd();
-
-describe('build command', function() {
- beforeEach(function() {
- shell.rm('-rf', tempDir);
- shell.mkdir('-p', tempDir);
- });
-
- it('should not run inside a Cordova-based project with no added platforms', function() {
- this.after(function() {
- process.chdir(cwd);
- });
-
- cordova.create(tempDir);
- process.chdir(tempDir);
- expect(function() {
- cordova.build();
- }).toThrow();
- });
-
- it('should run inside a Cordova-based project with at least one added platform', function() {
- // move platform project fixtures over to fake cordova into thinking platforms were added
- // TODO: possibly add this to helper?
- shell.mv('-f', path.join(cordova_project, 'platforms', 'blackberry'), path.join(tempDir));
- shell.mv('-f', path.join(cordova_project, 'platforms', 'ios'), path.join(tempDir));
- this.after(function() {
- process.chdir(cwd);
- shell.mv('-f', path.join(tempDir, 'blackberry'), path.join(cordova_project, 'platforms', 'blackberry'));
- shell.mv('-f', path.join(tempDir, 'ios'), path.join(cordova_project, 'platforms', 'ios'));
- });
-
- process.chdir(cordova_project);
-
- var prepare_spy = spyOn(cordova, 'prepare');
- var compile_spy = spyOn(cordova, 'compile');
- expect(function() {
- cordova.build();
- var prep_cb = prepare_spy.mostRecentCall.args[0];
- prep_cb();
- expect(prepare_spy).toHaveBeenCalled();
- expect(compile_spy).toHaveBeenCalled();
- }).not.toThrow();
- });
- it('should not run outside of a Cordova-based project', function() {
- this.after(function() {
- process.chdir(cwd);
- });
-
- shell.mkdir('-p', tempDir);
- process.chdir(tempDir);
-
- expect(function() {
- cordova.build();
- }).toThrow();
- });
-
- describe('hooks', function() {
- var s, p, c;
- beforeEach(function() {
- s = spyOn(hooker.prototype, 'fire').andReturn(true);
- p = spyOn(cordova, 'prepare');
- c = spyOn(cordova, 'compile');
- });
-
- describe('when platforms are added', function() {
- beforeEach(function() {
- shell.mv('-f', path.join(cordova_project, 'platforms', 'blackberry'), path.join(tempDir));
- shell.mv('-f', path.join(cordova_project, 'platforms', 'ios'), path.join(tempDir));
- process.chdir(cordova_project);
- });
- afterEach(function() {
- shell.mv('-f', path.join(tempDir, 'blackberry'), path.join(cordova_project, 'platforms', 'blackberry'));
- shell.mv('-f', path.join(tempDir, 'ios'), path.join(cordova_project, 'platforms', 'ios'));
- process.chdir(cwd);
- });
-
- it('should fire before hooks through the hooker module', function() {
- cordova.build();
- expect(s).toHaveBeenCalledWith('before_build');
- });
- it('should fire after hooks through the hooker module', function() {
- cordova.build();
- p.mostRecentCall.args[0](); // prep cb
- c.mostRecentCall.args[0](); // compile cb
- expect(s).toHaveBeenCalledWith('after_build');
- });
- });
-
- describe('with no platforms added', function() {
- beforeEach(function() {
- cordova.create(tempDir);
- process.chdir(tempDir);
- });
- afterEach(function() {
- process.chdir(cwd);
- });
- it('should not fire the hooker', function() {
- expect(function() {
- cordova.build();
- }).toThrow();
- expect(s).not.toHaveBeenCalledWith('before_build');
- expect(s).not.toHaveBeenCalledWith('after_build');
- });
- });
-
- });
-
- describe('merges', function() {
- describe('per platform', function() {
- beforeEach(function() {
- process.chdir(cordova_project);
- });
-
- afterEach(function() {
- process.chdir(cwd);
- });
-
- describe('Android', function() {
- it('should call android_parser\'s update_overrides', function() {
- spyOn(require('shelljs'), 'exec').andReturn({code:0});
- var s = spyOn(android_parser.prototype, 'update_overrides');
-
- cordova.build('android');
- expect(s).toHaveBeenCalled();
- });
-
- });
-
- describe('iOS', function() {
- it('should call ios_parser\'s update_overrides', function(done) {
- var parser = new ios_parser(ios_project_path);
- var config = new config_parser(www_config);
-
- var s = spyOn(parser, 'update_overrides');
- parser.update_project(config, function() {
- expect(s).toHaveBeenCalled();
- done();
- });
- });
-
- });
-
- describe('BlackBerry', function() {
- it('should call blackberry_parser\'s update_overrides', function(done) {
- var parser = new blackberry_parser(blackberry_project_path);
- var config = new config_parser(www_config);
-
- var s = spyOn(parser, 'update_overrides');
- parser.update_project(config, function() {
- expect(s).toHaveBeenCalled();
- done();
- });
- });
-
- });
-
-
- });
- });
-
-});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/spec/metadata/android_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/android_parser.spec.js b/spec/metadata/android_parser.spec.js
index 0f965e7..d051c6f 100644
--- a/spec/metadata/android_parser.spec.js
+++ b/spec/metadata/android_parser.spec.js
@@ -170,51 +170,32 @@ describe('android project parser', function() {
parser.update_www();
expect(fs.readFileSync(path.join(android_project_path, 'assets', 'www', 'cordova.js'),'utf-8')).toBe(fs.readFileSync(path.join(util.libDirectory, 'cordova-android', 'framework', 'assets', 'js', 'cordova.android.js'), 'utf-8'));
});
- it('should call out to util.deleteSvnFolders', function() {
- var spy = spyOn(util, 'deleteSvnFolders');
- parser.update_www();
- expect(spy).toHaveBeenCalled();
- });
});
describe('update_overrides method',function() {
-
- it('should copy a new file from merges into www', function() {
-
- var newFile = path.join(project_path, 'merges','android', 'merge.js');
-
- this.after(function() {
- shell.rm('-rf', path.join(project_path, 'merges','android','merge.js'));
- });
-
+ var mergesPath = path.join(project_path, 'merges', 'android');
+ var newFile = path.join(mergesPath, 'merge.js');
+ beforeEach(function() {
+ shell.mkdir('-p', mergesPath);
fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
+ });
+ afterEach(function() {
+ shell.rm('-rf', mergesPath);
+ });
+ it('should copy a new file from merges into www', function() {
parser.update_overrides();
expect(fs.existsSync(path.join(android_project_path, 'assets', 'www', 'merge.js'))).toBe(true);
});
it('should copy a file from merges over a file in www', function() {
-
- var newFile = path.join(project_path, 'merges','android', 'merge.js');
var newFileWWW = path.join(project_path, 'www','merge.js');
-
+ fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
this.after(function() {
- shell.rm('-rf', path.join(project_path, 'merges','android','merge.js'));
- shell.rm('-rf',path.join(project_path,'www','merge.js'));
+ shell.rm('-rf', newFileWWW);
});
-
- fs.writeFileSync(newFile, 'var foo=2;', 'utf-8');
- fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
parser.update_overrides();
expect(fs.existsSync(path.join(android_project_path, 'assets', 'www', 'merge.js'))).toBe(true);
- console.log(fs.readFileSync(path.join(android_project_path, 'assets', 'www', 'merge.js')));
- expect(fs.readFileSync(path.join(android_project_path, 'assets', 'www', 'merge.js'),'utf-8')).toEqual('var foo=2;');
- });
-
-
- it('should call out to util.deleteSvnFolders', function() {
- var spy = spyOn(util, 'deleteSvnFolders');
- parser.update_overrides();
- expect(spy).toHaveBeenCalled();
+ expect(fs.readFileSync(path.join(android_project_path, 'assets', 'www', 'merge.js'),'utf-8')).toEqual('alert("sup");');
});
});
@@ -229,6 +210,11 @@ describe('android project parser', function() {
parser.update_project(config);
expect(spyConfig).toHaveBeenCalled();
});
+ it('should call out to util.deleteSvnFolders', function() {
+ var spy = spyOn(util, 'deleteSvnFolders');
+ parser.update_project(config);
+ expect(spy).toHaveBeenCalled();
+ });
});
});
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/spec/metadata/blackberry_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/blackberry_parser.spec.js b/spec/metadata/blackberry_parser.spec.js
index 21eb826..3336b59 100644
--- a/spec/metadata/blackberry_parser.spec.js
+++ b/spec/metadata/blackberry_parser.spec.js
@@ -138,54 +138,36 @@ describe('blackberry project parser', function() {
var bb_cfg = fs.readFileSync(blackberry_config, 'utf-8');
expect(bb_cfg).not.toBe(www_cfg);
});
- it('should call out to util.deleteSvnFolders', function() {
- var spy = spyOn(util, 'deleteSvnFolders');
- parser.update_www();
- expect(spy).toHaveBeenCalled();
- });
});
describe('update_overrides method',function() {
+ var mergesPath = path.join(project_path, 'merges', 'blackberry');
+ var newFile = path.join(mergesPath, 'merge.js');
+ beforeEach(function() {
+ shell.mkdir('-p', mergesPath);
+ fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
+ });
+ afterEach(function() {
+ shell.rm('-rf', mergesPath);
+ });
it('should copy a new file from merges into www', function() {
-
- var newFile = path.join(project_path, 'merges','blackberry', 'merge.js');
-
- this.after(function() {
- shell.rm('-rf', path.join(project_path, 'merges','blackberry','merge.js'));
- });
-
- fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
parser.update_overrides();
expect(fs.existsSync(path.join(blackberry_project_path, 'www', 'merge.js'))).toBe(true);
});
it('should copy a file from merges over a file in www', function() {
-
- var newFile = path.join(project_path, 'merges','blackberry', 'merge.js');
var newFileWWW = path.join(project_path, 'www','merge.js');
-
+ fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
this.after(function() {
- shell.rm('-rf', path.join(project_path, 'merges','blackberry','merge.js'));
- shell.rm('-rf',path.join(project_path,'www','merge.js'));
+ shell.rm('-rf', newFileWWW);
});
-
- fs.writeFileSync(newFile, 'var foo=2;', 'utf-8');
- fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
parser.update_overrides();
expect(fs.existsSync(path.join(blackberry_project_path, 'www', 'merge.js'))).toBe(true);
- expect(fs.readFileSync(path.join(blackberry_project_path, 'www', 'merge.js'),'utf-8')).toEqual('var foo=2;');
- });
-
-
- it('should call out to util.deleteSvnFolders', function() {
- var spy = spyOn(util, 'deleteSvnFolders');
- parser.update_overrides();
- expect(spy).toHaveBeenCalled();
+ expect(fs.readFileSync(path.join(blackberry_project_path, 'www', 'merge.js'),'utf-8')).toEqual('alert("sup");');
});
});
-
describe('update_project method', function() {
var cordova_config_path = path.join(project_path, '.cordova', 'config.json');
var original_config_json = fs.readFileSync(cordova_config_path, 'utf-8');
@@ -217,10 +199,18 @@ describe('blackberry project parser', function() {
parser.update_project(config);
expect(spyEnv).not.toHaveBeenCalled();
});
- it('should write out project properties', function() {
+ it('should write out project properties', function(done) {
var spyProps = spyOn(parser, 'write_project_properties');
parser.update_project(config, function() {
expect(spyProps).toHaveBeenCalled();
+ done();
+ });
+ });
+ it('should call out to util.deleteSvnFolders', function(done) {
+ var spy = spyOn(util, 'deleteSvnFolders');
+ parser.update_project(config, function() {
+ expect(spy).toHaveBeenCalled();
+ done();
});
});
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/spec/metadata/ios_parser.spec.js
----------------------------------------------------------------------
diff --git a/spec/metadata/ios_parser.spec.js b/spec/metadata/ios_parser.spec.js
index de62b1c..dbd4816 100644
--- a/spec/metadata/ios_parser.spec.js
+++ b/spec/metadata/ios_parser.spec.js
@@ -159,51 +159,35 @@ describe('ios project parser', function () {
parser.update_www();
expect(fs.readFileSync(path.join(ios_project_path, 'www', 'cordova.js'), 'utf-8')).toBe(fs.readFileSync(path.join(util.libDirectory, 'cordova-ios', 'CordovaLib', 'cordova.ios.js'), 'utf-8'));
});
- it('should call out to util.deleteSvnFolders', function () {
- var spy = spyOn(util, 'deleteSvnFolders');
- parser.update_www();
- expect(spy).toHaveBeenCalled();
- });
});
describe('update_overrides method', function () {
+ var mergesPath = path.join(project_path, 'merges', 'ios');
+ var newFile = path.join(mergesPath, 'merge.js');
+ beforeEach(function() {
+ shell.mkdir('-p', mergesPath);
+ fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
+ });
+ afterEach(function() {
+ shell.rm('-rf', mergesPath);
+ });
it('should copy a new file from merges into www', function () {
-
- var newFile = path.join(project_path, 'merges', 'ios', 'merge.js');
-
- this.after(function () {
- shell.rm('-rf', path.join(project_path, 'merges','ios','merge.js'));
- });
-
- fs.writeFileSync(newFile, 'alert("sup");', 'utf-8');
parser.update_overrides();
expect(fs.existsSync(path.join(ios_project_path, 'www', 'merge.js'))).toBe(true);
});
it('should copy a file from merges over a file in www', function () {
-
- var newFile = path.join(project_path, 'merges', 'ios', 'merge.js');
var newFileWWW = path.join(project_path, 'www', 'merge.js');
-
+ fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
this.after(function () {
- shell.rm('-rf', path.join(project_path, 'merges','ios','merge.js'));
- shell.rm('-rf', path.join(project_path, 'www', 'merge.js'));
+ shell.rm('-rf', newFileWWW);
});
- fs.writeFileSync(newFile, 'var foo=2;', 'utf-8');
- fs.writeFileSync(newFileWWW, 'var foo=1;', 'utf-8');
parser.update_overrides();
expect(fs.existsSync(path.join(ios_project_path, 'www', 'merge.js'))).toBe(true);
- expect(fs.readFileSync(path.join(ios_project_path, 'www', 'merge.js'), 'utf-8')).toEqual('var foo=2;');
+ expect(fs.readFileSync(path.join(ios_project_path, 'www', 'merge.js'), 'utf-8')).toEqual('alert("sup");');
});
-
- it('should call out to util.deleteSvnFolders', function() {
- var spy = spyOn(util, 'deleteSvnFolders');
- parser.update_overrides();
- expect(spy).toHaveBeenCalled();
- });
-
});
describe('update_project method', function () {
@@ -221,6 +205,14 @@ describe('ios project parser', function () {
done();
});
});
+ it('should call out to util.deleteSvnFolders', function(done) {
+ var spy = spyOn(util, 'deleteSvnFolders');
+ var spyConfig = spyOn(parser, 'update_from_config').andCallThrough();
+ parser.update_project(config, function () {
+ expect(spy).toHaveBeenCalled();
+ done();
+ });
+ });
});
});
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/spec/platform.spec.js
----------------------------------------------------------------------
diff --git a/spec/platform.spec.js b/spec/platform.spec.js
index c49a53c..b8dedec 100644
--- a/spec/platform.spec.js
+++ b/spec/platform.spec.js
@@ -267,10 +267,11 @@ describe('platform command', function() {
cr = spyOn(android_parser, 'check_requirements');
});
it('should fire before and after hooks through the hooker module', function() {
- spyOn(android_parser.prototype, 'update_project');
+ var ap = spyOn(android_parser.prototype, 'update_project');
cordova.platform('add', 'android');
fake_reqs_check();
fake_create(path.join(tempDir, 'platforms', 'android'));
+ ap.mostRecentCall.args[1](); // fake out update_project
expect(s).toHaveBeenCalledWith('before_platform_add');
expect(s).toHaveBeenCalledWith('after_platform_add');
});
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/src/metadata/android_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/android_parser.js b/src/metadata/android_parser.js
index c36491a..3dfaf22 100644
--- a/src/metadata/android_parser.js
+++ b/src/metadata/android_parser.js
@@ -131,30 +131,33 @@ module.exports.prototype = {
var www = path.join(projectRoot, 'www');
var platformWww = path.join(this.path, 'assets');
// remove stock platform assets
- shell.rm('-rf', path.join(platformWww, 'www'));
+ shell.rm('-rf', this.www_dir());
// copy over all app www assets
shell.cp('-rf', www, platformWww);
- platformWww = path.join(platformWww, 'www');
// write out android lib's cordova.js
var jsPath = path.join(util.libDirectory, 'cordova-android', 'framework', 'assets', 'js', 'cordova.android.js');
- fs.writeFileSync(path.join(platformWww, 'cordova.js'), fs.readFileSync(jsPath, 'utf-8'), 'utf-8');
+ fs.writeFileSync(path.join(this.www_dir(), 'cordova.js'), fs.readFileSync(jsPath, 'utf-8'), 'utf-8');
- // delete any .svn folders copied over
- util.deleteSvnFolders(platformWww);
},
// update the overrides folder into the www folder
update_overrides:function() {
var projectRoot = util.isCordova(this.path);
- var overrides = path.join(projectRoot, 'merges','android','*');
- shell.cp('-rf', overrides, this.www_dir());
+ var merges_path = path.join(projectRoot, 'merges', 'android');
+ if (fs.existsSync(merges_path)) {
+ var overrides = path.join(merges_path, '*');
+ shell.cp('-rf', overrides, this.www_dir());
+ }
},
update_project:function(cfg, callback) {
+ var platformWww = path.join(this.path, 'assets');
this.update_from_config(cfg);
this.update_www();
this.update_overrides();
+ // delete any .svn folders copied over
+ util.deleteSvnFolders(platformWww);
if (callback) callback();
}
};
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/src/metadata/blackberry_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/blackberry_parser.js b/src/metadata/blackberry_parser.js
index cacc260..ae1742c 100644
--- a/src/metadata/blackberry_parser.js
+++ b/src/metadata/blackberry_parser.js
@@ -64,6 +64,7 @@ module.exports.prototype = {
self.update_from_config(cfg);
self.update_www();
self.update_overrides();
+ util.deleteSvnFolders(this.www_dir());
// Do we have BB config?
var projectRoot = util.isCordova(this.path);
@@ -91,7 +92,7 @@ module.exports.prototype = {
update_www:function() {
var projectRoot = util.isCordova(this.path);
var www = path.join(projectRoot, 'www');
- var platformWww = path.join(this.path, 'www');
+ var platformWww = this.www_dir();
var finalWww = path.join(this.path, 'finalwww');
shell.mkdir('-p', finalWww);
@@ -120,16 +121,16 @@ module.exports.prototype = {
shell.rm('-rf', platformWww);
shell.mv(finalWww, platformWww);
- util.deleteSvnFolders(platformWww);
},
// update the overrides folder into the www folder
update_overrides:function() {
var projectRoot = util.isCordova(this.path);
- var platformWww = path.join(this.path, 'www');
- var overrides = path.join(projectRoot, 'merges','blackberry');
- shell.cp('-rf', overrides+'/*',platformWww);
- util.deleteSvnFolders(platformWww);
+ var merges_path = path.join(projectRoot, 'merges', 'blackberry');
+ if (fs.existsSync(merges_path)) {
+ var overrides = path.join(merges_path, '*');
+ shell.cp('-rf', overrides, this.www_dir());
+ }
},
write_project_properties:function() {
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/src/metadata/ios_parser.js
----------------------------------------------------------------------
diff --git a/src/metadata/ios_parser.js b/src/metadata/ios_parser.js
index 9cf4450..ee235dc 100644
--- a/src/metadata/ios_parser.js
+++ b/src/metadata/ios_parser.js
@@ -140,7 +140,7 @@ module.exports.prototype = {
update_www:function() {
var projectRoot = util.isCordova(this.path);
var www = path.join(projectRoot, 'www');
- var project_www = path.join(this.path, 'www');
+ var project_www = this.www_dir();
// remove the stock www folder
shell.rm('-rf', project_www);
@@ -151,18 +151,16 @@ module.exports.prototype = {
// write out proper cordova.js
shell.cp('-f', path.join(util.libDirectory, 'cordova-ios', 'CordovaLib', 'cordova.ios.js'), path.join(project_www, 'cordova.js'));
- util.deleteSvnFolders(project_www);
},
// update the overrides folder into the www folder
update_overrides:function() {
var projectRoot = util.isCordova(this.path);
- var project_www = path.join(this.path, 'www');
- var overrides = path.join(projectRoot, 'merges','ios');
- shell.cp('-rf', overrides+'/*',project_www);
-
- util.deleteSvnFolders(project_www);
-
+ var merges_path = path.join(projectRoot, 'merges', 'ios');
+ if (fs.existsSync(merges_path)) {
+ var overrides = path.join(merges_path, '*');
+ shell.cp('-rf', overrides, this.www_dir());
+ }
},
update_project:function(cfg, callback) {
@@ -170,6 +168,7 @@ module.exports.prototype = {
this.update_from_config(cfg, function() {
self.update_www();
self.update_overrides();
+ util.deleteSvnFolders(self.www_dir());
if (callback) callback();
});
}
http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/ec020e7f/src/platform.js
----------------------------------------------------------------------
diff --git a/src/platform.js b/src/platform.js
index 604561d..966a76f 100644
--- a/src/platform.js
+++ b/src/platform.js
@@ -28,6 +28,12 @@ var config_parser = require('./config_parser'),
blackberry_parser = require('./metadata/blackberry_parser'),
shell = require('shelljs');
+var parsers = {
+ "android":android_parser,
+ "ios":ios_parser,
+ "blackberry":blackberry_parser
+};
+
module.exports = function platform(command, targets, callback) {
var projectRoot = cordova_util.isCordova(process.cwd());
@@ -38,8 +44,8 @@ module.exports = function platform(command, targets, callback) {
var hooks = new hooker(projectRoot),
end;
- var createOverrides = function(target){
- shell.mkdir('-p', path.join('merges',target));
+ var createOverrides = function(target) {
+ shell.mkdir('-p', path.join(projectRoot, 'merges', target));
};
if (arguments.length === 0) command = 'ls';
@@ -91,34 +97,12 @@ module.exports = function platform(command, targets, callback) {
throw new Error('An error occured during creation of ' + target + ' sub-project. ' + create_output);
}
- switch(target) {
- case 'android':
- var android = new android_parser(output);
- createOverrides(target);
-
- android.update_project(cfg);
- hooks.fire('after_platform_add');
- end();
- break;
- case 'ios':
- var ios = new ios_parser(output);
- createOverrides(target);
-
- ios.update_project(cfg, function() {
- hooks.fire('after_platform_add');
- end();
- });
- break;
- case 'blackberry':
- var bb = new blackberry_parser(output);
- createOverrides(target);
-
- bb.update_project(cfg, function() {
- hooks.fire('after_platform_add');
- end();
- });
- break;
- }
+ var parser = new parsers[target](output);
+ parser.update_project(cfg, function() {
+ createOverrides(target);
+ hooks.fire('after_platform_add');
+ end();
+ });
});
}
});
@@ -129,11 +113,11 @@ module.exports = function platform(command, targets, callback) {
targets.forEach(function(target) {
hooks.fire('before_platform_rm');
shell.rm('-rf', path.join(projectRoot, 'platforms', target));
- shell.rm('-rf', path.join(projectRoot,'merges',target));
+ shell.rm('-rf', path.join(projectRoot, 'merges', target));
hooks.fire('after_platform_rm');
});
break;
default:
- throw ('Unrecognized command "' + command + '". Use either `add`, `remove`, or `list`.');
+ throw new Error('Unrecognized command "' + command + '". Use either `add`, `remove`, or `list`.');
}
};