[ 
https://issues.apache.org/jira/browse/CB-6377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13965742#comment-13965742
 ] 

ASF GitHub Bot commented on CB-6377:
------------------------------------

Github user jsoref commented on a diff in the pull request:

    https://github.com/apache/cordova-cli/pull/161#discussion_r11502427
  
    --- Diff: src/superspawn.js ---
    @@ -67,11 +69,11 @@ exports.spawn = function(cmd, args, opts) {
         var spawnOpts = {};
         var d = Q.defer();
     
    -    if (process.platform == 'win32') {
    +    if (iswin32) {
             cmd = resolveWindowsExe(cmd);
             // If we couldn't find the file, likely we'll end up failing,
             // but for things like "del", cmd will do the trick.
    -        if (!fs.existsSync(cmd)) {
    +        if (wrapcmd && path.extname(cmd) != '.exe' || !fs.existsSync(cmd)) 
{
    --- End diff --
    
    @sgrebnov you misread it, we need this for everything that is `!=` `.exe`.
    
    For `.exe`, **Windows** passes arguments directly to the executable, and 
the executable (or its runtime, e.g. `libc`/`msvcrt`) is responsible for 
parsing the string into its arguments array (if it believes in arguments arrays 
at all).
    
    For `.bat`, or anything else, **Windows** won't actually launch them if you 
use the thing that `child_process.spawn` see: 
https://github.com/joyent/node/issues/2318 so, `child_process.spawn` has to run 
`cmd.exe` with the arguments. But `cmd.exe` has its own argument parsing which 
treats `"`s differently. In order to get `cmd.exe` to handle `"`s reasonably, 
you need to pass it `/s` which is what this block does (see the line below).


> CLI is unable to create a project when there are spaces in the path
> -------------------------------------------------------------------
>
>                 Key: CB-6377
>                 URL: https://issues.apache.org/jira/browse/CB-6377
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: CLI
>    Affects Versions: 3.4.0
>            Reporter: JennyGee
>            Assignee: Josh Soref
>            Priority: Critical
>
> Unable to create a project where there are spaces in the path.
> C:\Program Files\BlackBerry\BB10 WebWorks SDK 
> 2.1.0.3\webworks-cli\node_modules\
> wrench\lib\wrench.js:249
>         if (e.code !== 'EEXIST') throw e;
>                                        ^
> Error: ENOENT, no such file or directory 'C:\Documents and 
> Settings\IEUser\.cord
> ova\lib\blackberry10\cordova\v2.1.0.3'
>     at Object.fs.mkdirSync (fs.js:642:18)
>     at Object.exports.copyDirSyncRecursive (C:\Program Files\BlackBerry\BB10 
> Web
> Works SDK 2.1.0.3\webworks-cli\node_modules\wrench\lib\wrench.js:246:12)
>     at Object._self.fetchBlackBerry (C:\Program Files\BlackBerry\BB10 
> WebWorks S
> DK 2.1.0.3\webworks-cli\lib\utils\utils.js:59:20)
>     at new CLI (C:\Program Files\BlackBerry\BB10 WebWorks SDK 
> 2.1.0.3\webworks-c
> li\lib\cli.js:48:19)
>     at Object.<anonymous> (C:\Program Files\BlackBerry\BB10 WebWorks SDK 
> 2.1.0.3
> \webworks-cli\bin\webworks:4:16)
>     at Module._compile (module.js:456:26)
>     at Object.Module._extensions..js (module.js:474:10)
>     at Module.load (module.js:356:32)
>     at Function.Module._load (module.js:312:12)
>     at Function.Module.runMain (module.js:497:10)
> Looking at the source code, it appears that 
> https://issues.apache.org/jira/browse/CB-6323 broke 
> https://issues.apache.org/jira/browse/CB-6306



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to