You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2014/09/19 01:19:17 UTC
[2/4] git commit: CB-7520 .appxbundle package format support
CB-7520 .appxbundle package format support
Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/b2848a97
Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/b2848a97
Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/b2848a97
Branch: refs/heads/master
Commit: b2848a979944f29d0b3e6a2167a4b3b1257bb261
Parents: 44afcd3
Author: sgrebnov <v-...@microsoft.com>
Authored: Thu Sep 4 18:36:28 2014 +0400
Committer: sgrebnov <v-...@microsoft.com>
Committed: Thu Sep 11 11:44:11 2014 +0400
----------------------------------------------------------------------
windows/template/cordova/lib/package.js | 56 ++++++++++++----------------
windows/template/cordova/lib/run.js | 2 +-
2 files changed, 24 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/b2848a97/windows/template/cordova/lib/package.js
----------------------------------------------------------------------
diff --git a/windows/template/cordova/lib/package.js b/windows/template/cordova/lib/package.js
index 95a15c2..6538fdd 100644
--- a/windows/template/cordova/lib/package.js
+++ b/windows/template/cordova/lib/package.js
@@ -41,53 +41,43 @@ module.exports.getPackage = function (projectType, buildtype, buildArch) {
return fs.statSync(pkgDir).isDirectory();
});
- // Retrieve package infos for all packages found
- // that corresponds to package properties provided
- return Q.all(pkgDirs.map(function (pkgDir) {
- // get info about package
- return module.exports.getInfo(pkgDir).then(function(pkgInfo) {
+ for (var dir in pkgDirs) {
+ var packageFiles = fs.readdirSync(pkgDirs[dir]).filter(function(e) {
+ return e.match('.*.(appx|appxbundle)$');
+ });
+
+ for (var pkgFile in packageFiles) {
+ var packageFile = path.join(pkgDirs[dir], packageFiles[pkgFile]);
+ var pkgInfo = module.exports.getPackageFileInfo(packageFile);
+
if (pkgInfo && pkgInfo.type == projectType &&
pkgInfo.arch == buildArch && pkgInfo.buildtype == buildtype) {
// if package's properties are corresponds to properties provided
// resolve the promise with this package's info
return Q.resolve(pkgInfo);
}
- // else resove with no info
- return Q.resolve();
- });
- })).then(function (packages) {
- for (var idx in packages) {
- // iterate through infos found and resolve with first
- if (packages[idx]) {
- return Q.resolve(packages[idx]);
- }
}
- // else reject because seems that no corresponding packages found
- return Q.reject('Package with specified parameters not found in AppPackages folder');
- });
+ }
+ // reject because seems that no corresponding packages found
+ return Q.reject('Package with specified parameters not found in AppPackages folder');
};
// returns package info object or null if it is not valid package
-module.exports.getInfo = function (packagePath) {
- if (!fs.statSync(packagePath).isDirectory()){
- return Q.reject('Provided path is not a directory');
- }
- // This RE matches with package folder name like:
- // CordovaApp.Phone_0.0.1.0_AnyCPU_Debug_Test
- // Group: ( 1 ) ( 2 ) ( 3 ) ( 4 )
- var props = /.*\.(Phone|Windows|Windows80)_((?:\d\.)*\d)_(AnyCPU|x64|x86|ARM)(?:_(Debug))?_Test$/i.exec(path.basename(packagePath));
- if (props){
- // return package info object inside of promise
- return Q.resolve({path: packagePath,
- type : props[1].toLowerCase(),
+module.exports.getPackageFileInfo = function (packageFile) {
+ var pkgName = path.basename(packageFile);
+ // CordovaApp.Windows_0.0.1.0_anycpu_debug.appx
+ // CordovaApp.Phone_0.0.1.0_x86_debug.appxbundle
+ var props = /.*\.(Phone|Windows|Windows80)_((?:\d\.)*\d)_(AnyCPU|x64|x86|ARM)(?:_(Debug))?.(appx|appxbundle)$/i.exec(pkgName);
+ if (props) {
+ return {type : props[1].toLowerCase(),
arch : props[3].toLowerCase(),
buildtype : props[4] ? props[4].toLowerCase() : "release",
file : props[1].toLowerCase() != "phone" ?
- path.join(packagePath, 'Add-AppDevPackage.ps1') :
- path.join(packagePath, path.basename(packagePath).replace(/_test$/i, '') + '.appx')
- });
+ path.join(packageFile, '..', 'Add-AppDevPackage.ps1') :
+ packageFile
+ };
}
- return Q.reject('Can\'t fetch info for package at ' + packagePath);
+ return null;
};
// return package app ID fetched from appxmanifest
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/b2848a97/windows/template/cordova/lib/run.js
----------------------------------------------------------------------
diff --git a/windows/template/cordova/lib/run.js b/windows/template/cordova/lib/run.js
index 87fe36d..1bd1904 100644
--- a/windows/template/cordova/lib/run.js
+++ b/windows/template/cordova/lib/run.js
@@ -65,7 +65,7 @@ module.exports.run = function (argv) {
return buildPackages.then(function () {
return packages.getPackage(projectType, buildType, buildArchs[0]);
}).then(function(pkg) {
- console.log('\nDeploying ' + pkg.type + ' package to ' + deployTarget);
+ console.log('\nDeploying ' + pkg.type + ' package to ' + deployTarget + ':\n' + pkg.file);
return pkg.type == "phone" ?
packages.deployToPhone(pkg.file, deployTarget) :
packages.deployToDesktop(pkg.file, deployTarget);