Skip to content

Commit

Permalink
fix: Handle whitespace in homedir paths (#98)
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcusPope authored and coreyfarrell committed Jul 9, 2019
1 parent 1fae96f commit f002ecc
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/mungers/cmd.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ function mungeCmd(workingDir, options) {

let npmPath = whichOrUndefined('npm') || 'npm'
npmPath = path.dirname(npmPath) + '\\node_modules\\npm\\bin\\npm-cli.js'
replace = m[1] + workingDir + '/node.cmd' +
replace = m[1] + '"' + workingDir + '/node.cmd"' +
' "' + npmPath + '"' +
m[3] + m[4]
options.args[cmdi + 1] = command.replace(npmre, replace)
Expand Down
23 changes: 23 additions & 0 deletions test/shim-root-space.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const IS_WINDOWS = require('is-windows')();
const tap = require('tap');
const path = require('path');
const fs = require('fs');

tap.test('spaces in shim-root/homedir path on windows do not break wrapped npm calls', { skip: !IS_WINDOWS }, function(t) {
// create temp folder with spaces in path
process.env.SPAWN_WRAP_SHIM_ROOT = path.join(__dirname, 'fixtures', 'space path');

// wrap with custom root path
const sw = require('..');
const unwrap = sw([]);

// run a child process with an npm command
const cp = require('child_process');
const child = cp.exec('npm --version');
child.on('exit', function(code) {
t.equal(code, 0);
unwrap();
fs.rmdirSync(process.env.SPAWN_WRAP_SHIM_ROOT);
t.end();
});
});

0 comments on commit f002ecc

Please sign in to comment.