Merge branch 'master' into 4.0.x (fix windows space-in-path bug)

close #147
Conflicts:
	VERSION
	bin/templates/cordova/version
	framework/assets/www/cordova.js
	framework/src/org/apache/cordova/CordovaWebView.java
	package.json
This commit is contained in:
Andrew Grieve 2015-01-13 10:00:59 -05:00
commit 4382234676

View File

@ -26,13 +26,15 @@ var isWindows = process.platform.slice(0, 3) == 'win';
// Takes a command and optional current working directory. // Takes a command and optional current working directory.
module.exports = function(cmd, args, opt_cwd) { module.exports = function(cmd, args, opt_cwd) {
var d = Q.defer(); var d = Q.defer();
var opts = { cwd: opt_cwd, stdio: 'inherit' };
try { try {
// Work around spawn not being able to find .bat files. // Work around spawn not being able to find .bat files.
if (isWindows) { if (isWindows) {
args.unshift('/s', '/c', cmd); args = [['/s', '/c', '"' + [cmd].concat(args).map(function(a){if (/^[^"].* .*[^"]/.test(a)) return '"' + a + '"'; return a;}).join(' ')+'"'].join(' ')];
cmd = 'cmd'; cmd = 'cmd';
opts.windowsVerbatimArguments = true;
} }
var child = child_process.spawn(cmd, args, {cwd: opt_cwd, stdio: 'inherit'}); var child = child_process.spawn(cmd, args, opts);
child.on('exit', function(code) { child.on('exit', function(code) {
if (code) { if (code) {
d.reject('Error code ' + code + ' for command: ' + cmd + ' with args: ' + args); d.reject('Error code ' + code + ' for command: ' + cmd + ' with args: ' + args);
@ -45,5 +47,4 @@ module.exports = function(cmd, args, opt_cwd) {
d.reject(e); d.reject(e);
} }
return d.promise; return d.promise;
} };