{"action":"created","issue":{"url":"https://api.github.com/repos/iojs/io.js/issues/1009","labels_url":"https://api.github.com/repos/iojs/io.js/issues/1009/labels{/name}","comments_url":"https://api.github.com/repos/iojs/io.js/issues/1009/comments","events_url":"https://api.github.com/repos/iojs/io.js/issues/1009/events","html_url":"https://github.com/iojs/io.js/issues/1009","id":59361552,"number":1009,"title":"Add child_process.spawnShell","user":{"login":"storzinc","id":4886933,"avatar_url":"https://avatars.githubusercontent.com/u/4886933?v=3","gravatar_id":"","url":"https://api.github.com/users/storzinc","html_url":"https://github.com/storzinc","followers_url":"https://api.github.com/users/storzinc/followers","following_url":"https://api.github.com/users/storzinc/following{/other_user}","gists_url":"https://api.github.com/users/storzinc/gists{/gist_id}","starred_url":"https://api.github.com/users/storzinc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/storzinc/subscriptions","organizations_url":"https://api.github.com/users/storzinc/orgs","repos_url":"https://api.github.com/users/storzinc/repos","events_url":"https://api.github.com/users/storzinc/events{/privacy}","received_events_url":"https://api.github.com/users/storzinc/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/iojs/io.js/labels/child_process","name":"child_process","color":"f7c6c7"},{"url":"https://api.github.com/repos/iojs/io.js/labels/discuss","name":"discuss","color":"02d7e1"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-02-28T22:16:43Z","updated_at":"2015-03-03T20:16:01Z","closed_at":null,"body":"In the child_process module currently there is two flavors of exec function: exec and execFile, which is good, but for spawn, there is only one version, would've been great to have something like child_process.spawnShell. Currently I use this code to emulate it:\r\n```javascript\r\nchild_process.spawn('cmd', ['/s', '/c', command], {windowsVerbatimArguments:true})\r\n```\r\nbut it is platform specific and requires the use of undocumented flag windowsVerbatimArguments\r\n"},"comment":{"url":"https://api.github.com/repos/iojs/io.js/issues/comments/77025327","html_url":"https://github.com/iojs/io.js/issues/1009#issuecomment-77025327","issue_url":"https://api.github.com/repos/iojs/io.js/issues/1009","id":77025327,"user":{"login":"sam-github","id":17607,"avatar_url":"https://avatars.githubusercontent.com/u/17607?v=3","gravatar_id":"","url":"https://api.github.com/users/sam-github","html_url":"https://github.com/sam-github","followers_url":"https://api.github.com/users/sam-github/followers","following_url":"https://api.github.com/users/sam-github/following{/other_user}","gists_url":"https://api.github.com/users/sam-github/gists{/gist_id}","starred_url":"https://api.github.com/users/sam-github/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sam-github/subscriptions","organizations_url":"https://api.github.com/users/sam-github/orgs","repos_url":"https://api.github.com/users/sam-github/repos","events_url":"https://api.github.com/users/sam-github/events{/privacy}","received_events_url":"https://api.github.com/users/sam-github/received_events","type":"User","site_admin":false},"created_at":"2015-03-03T20:16:01Z","updated_at":"2015-03-03T20:16:01Z","body":"It's a big hole in the child_process API. You can't spawn node scripts, like npm, on windows. Ouch.\r\n\r\n@storzinc I suggest you write an npm module that implements spawn as you'd like it to be, so it's API can get banged on and confirmed robust. I'd use it, and be happy to collaborate a bit on it, but I don't have time right now to write it.\r\n\r\nAt that point, with a solid API and implementation, I'd `+1` an attempt to get it into node. As you say, we have exec-with-shell and exec-direct, why not a spawn-with-shell, as well as spawn-direct."}}