You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cordova.apache.org by Filip Maj <fi...@adobe.com> on 2013/06/11 17:20:39 UTC
Re: git commit: [CB-3755] Update platform version from config.xml
Hey Tommy can you file issues for BB10 + WP7/8 support for this feature?
So we keep track of what needs to be covered for other platforms.
Cheers,
Fil
On 6/11/13 1:42 AM, "devgeeks@apache.org" <de...@apache.org> wrote:
>Updated Branches:
> refs/heads/master2 5011b0caf -> 04648ad00
>
>
>[CB-3755] Update platform version from config.xml
>
>- Updates AndroidManifest.xml android:versionName with version from
>config.xml
>- Updates AppName-Info.plist CFBundleVersion with version from config.xml
>
>NOTE: So far this is only handling Android and iOS. WP7/8 and Blackberry
>need to be updated as well
>
>
>Project: http://git-wip-us.apache.org/repos/asf/cordova-cli/repo
>Commit: http://git-wip-us.apache.org/repos/asf/cordova-cli/commit/04648ad0
>Tree: http://git-wip-us.apache.org/repos/asf/cordova-cli/tree/04648ad0
>Diff: http://git-wip-us.apache.org/repos/asf/cordova-cli/diff/04648ad0
>
>Branch: refs/heads/master2
>Commit: 04648ad00a2e2601f4052ca9da90377f54f9dbcd
>Parents: 5011b0c
>Author: Tommy-Carlos Williams <to...@devgeeks.org>
>Authored: Tue Jun 11 18:33:24 2013 +1000
>Committer: Tommy-Carlos Williams <to...@devgeeks.org>
>Committed: Tue Jun 11 18:33:24 2013 +1000
>
>----------------------------------------------------------------------
> spec/cordova-cli/config_parser.spec.js | 20 ++++++++++++++++++++
> .../android/android_parser.spec.js | 7 +++++++
> spec/platform-script/ios/ios_parser.spec.js | 8 ++++++++
> src/config_parser.js | 6 ++++++
> src/metadata/android_parser.js | 6 ++++++
> src/metadata/ios_parser.js | 4 ++++
> 6 files changed, 51 insertions(+)
>----------------------------------------------------------------------
>
>
>http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/04648ad0/spec/cord
>ova-cli/config_parser.spec.js
>----------------------------------------------------------------------
>diff --git a/spec/cordova-cli/config_parser.spec.js
>b/spec/cordova-cli/config_parser.spec.js
>index 77658fb..303b3d6 100644
>--- a/spec/cordova-cli/config_parser.spec.js
>+++ b/spec/cordova-cli/config_parser.spec.js
>@@ -63,6 +63,26 @@ describe('config.xml parser', function () {
> });
> });
>
>+ describe('version', function() {
>+ var cfg;
>+
>+ beforeEach(function() {
>+ cfg = new config_parser(xml);
>+ });
>+
>+ it('should get the version', function() {
>+ expect(cfg.version()).toEqual('2.0.0');
>+ });
>+ it('should allow setting the version', function() {
>+ cfg.version('2.0.1');
>+ expect(cfg.version()).toEqual('2.0.1');
>+ });
>+ it('should write to disk after setting the version', function() {
>+ cfg.version('2.0.1');
>+ expect(fs.readFileSync(xml,
>'utf-8')).toMatch(/version="2.0.1"/);
>+ });
>+ });
>+
> describe('app name', function() {
> var cfg;
>
>
>http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/04648ad0/spec/plat
>form-script/android/android_parser.spec.js
>----------------------------------------------------------------------
>diff --git a/spec/platform-script/android/android_parser.spec.js
>b/spec/platform-script/android/android_parser.spec.js
>index c0f77c1..4759a2c 100644
>--- a/spec/platform-script/android/android_parser.spec.js
>+++ b/spec/platform-script/android/android_parser.spec.js
>@@ -98,6 +98,13 @@ describe('android project parser', function() {
> expect(fs.existsSync(javs)).toBe(true);
> expect(fs.readFileSync(javs, 'utf-8')).toMatch(/package
>ca.filmaj.dewd/i);
> });
>+ it('should update the application version properly', function() {
>+ config.version('2.0.1');
>+ project.update_from_config(config);
>+
>+ var manifest = new
>et.ElementTree(et.XML(fs.readFileSync(android_manifest, 'utf-8')));
>+
>expect(manifest.getroot().attrib["android:versionName"]).toEqual('2.0.1');
>+ });
> it('should handle unsupported "-" in the application package
>name', function() {
> var javs = path.join(android_path, 'src', 'ca', 'filmaj',
>'the_dewd', 'cordovaExample.java');
> var orig_javs = path.join(android_path, 'src', 'org',
>'apache', 'cordova', 'cordovaExample', 'cordovaExample.java');
>
>http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/04648ad0/spec/plat
>form-script/ios/ios_parser.spec.js
>----------------------------------------------------------------------
>diff --git a/spec/platform-script/ios/ios_parser.spec.js
>b/spec/platform-script/ios/ios_parser.spec.js
>index 8598c3f..25f7833 100644
>--- a/spec/platform-script/ios/ios_parser.spec.js
>+++ b/spec/platform-script/ios/ios_parser.spec.js
>@@ -90,6 +90,14 @@ describe('ios project parser', function () {
> done();
> });
> });
>+ it('should update the application version (CFBundleVersion)
>properly', function (done) {
>+ config.version('2.0.1');
>+ project.update_from_config(config, function () {
>+ var plist_contents = fs.readFileSync(ios_plist, 'utf-8');
>+ expect(plist_contents).toMatch(/<string>2.0.1/);
>+ done();
>+ });
>+ });
> it('should update the whitelist in the project config.xml',
>function (done) {
> project.update_from_config(config, function () {
> var config_contents = fs.readFileSync(ios_config_xml,
>'utf-8');
>
>http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/04648ad0/src/confi
>g_parser.js
>----------------------------------------------------------------------
>diff --git a/src/config_parser.js b/src/config_parser.js
>index c9c4028..082b7f2 100644
>--- a/src/config_parser.js
>+++ b/src/config_parser.js
>@@ -40,6 +40,12 @@ config_parser.prototype = {
> this.update();
> } else return this.doc.find('name').text;
> },
>+ version:function(version) {
>+ if (version) {
>+ this.doc.getroot().attrib.version = version;
>+ this.update();
>+ } else return this.doc.getroot().attrib.version;
>+ },
> update:function() {
> fs.writeFileSync(this.path, this.doc.write({indent: 4}),
>'utf-8');
> }
>
>http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/04648ad0/src/metad
>ata/android_parser.js
>----------------------------------------------------------------------
>diff --git a/src/metadata/android_parser.js
>b/src/metadata/android_parser.js
>index b66e58b..314338d 100644
>--- a/src/metadata/android_parser.js
>+++ b/src/metadata/android_parser.js
>@@ -78,6 +78,12 @@ module.exports.prototype = {
> fs.writeFileSync(this.strings, strings.write({indent: 4}),
>'utf-8');
> events.emit('log', 'Wrote out Android application name to "' +
>name + '"');
>
>+ // Update the version by changing the AndroidManifest
>android:versionName
>+ var manifest = new
>et.ElementTree(et.XML(fs.readFileSync(this.manifest, 'utf-8')));
>+ var version = config.version();
>+ manifest.getroot().attrib["android:versionName"] = version;
>+ fs.writeFileSync(this.manifest, manifest.write({indent: 4}),
>'utf-8');
>+
> // Update package name by changing the AndroidManifest id and
>moving the entry class around to the proper package directory
> var manifest = new
>et.ElementTree(et.XML(fs.readFileSync(this.manifest, 'utf-8')));
> var pkg = config.packageName();
>
>http://git-wip-us.apache.org/repos/asf/cordova-cli/blob/04648ad0/src/metad
>ata/ios_parser.js
>----------------------------------------------------------------------
>diff --git a/src/metadata/ios_parser.js b/src/metadata/ios_parser.js
>index a8c6229..8ed1af8 100644
>--- a/src/metadata/ios_parser.js
>+++ b/src/metadata/ios_parser.js
>@@ -89,15 +89,19 @@ module.exports.prototype = {
> }
> var name = config.name();
> var pkg = config.packageName();
>+ var version = config.version();
>
> // Update package id (bundle id)
> var plistFile = path.join(this.cordovaproj, this.originalName +
>'-Info.plist');
> var infoPlist = plist.parseFileSync(plistFile);
> infoPlist['CFBundleIdentifier'] = pkg;
>+ // Update version (bundle version)
>+ infoPlist['CFBundleVersion'] = version;
> var info_contents = plist.build(infoPlist);
> info_contents =
>info_contents.replace(/<string>[\s\r\n]*<\/string>/g,'<string></string>');
> fs.writeFileSync(plistFile, info_contents, 'utf-8');
> events.emit('log', 'Wrote out iOS Bundle Identifier to "' + pkg
>+ '"');
>+ events.emit('log', 'Wrote out iOS Bundle Version to "' + version
>+ '"');
>
> // Update whitelist
> var self = this;
>