From d35eeb79742af8e0d988b5951c2969f1ae0b6985 Mon Sep 17 00:00:00 2001 From: gucong Date: Sun, 30 Sep 2018 19:32:20 +0800 Subject: [PATCH] shebang path space --- appveyor.yml | 2 +- index.js | 6 +++--- test/basic.js | 16 +++++++++++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 026d49e..0318312 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,7 +5,7 @@ environment: - nodejs_version: '4' install: - ps: Install-Product node $env:nodejs_version - - npm -g install npm@latest + - npm -g install npm@lts - set PATH=%APPDATA%\npm;%PATH% - npm install matrix: diff --git a/index.js b/index.js index 30a2d32..52c7ab2 100644 --- a/index.js +++ b/index.js @@ -24,14 +24,14 @@ var debug = doDebug ? function () { process.stderr.write(message + '\n') } : function () {} -var shebang = process.platform === 'os390' ? +var isWindows = require('./lib/is-windows')() + +var shebang = isWindows || process.platform === 'os390' ? '#!/bin/env ' : '#!' var shim = shebang + process.execPath + '\n' + fs.readFileSync(__dirname + '/shim.js') -var isWindows = require('./lib/is-windows')() - var pathRe = /^PATH=/ if (isWindows) pathRe = /^PATH=/i diff --git a/test/basic.js b/test/basic.js index 42508a7..f262c95 100644 --- a/test/basic.js +++ b/test/basic.js @@ -23,7 +23,7 @@ if (process.argv[2] === 'parent') { console.log('EXIT %j', [code, signal]) }) var argv = process.argv.slice(3).map(function (arg) { - if (arg === fixture) { + if (path.resolve(arg) === fixture) { return '{{FIXTURE}}' } return arg @@ -271,6 +271,20 @@ t.test('exec execPath', function (t) { }) }) +t.test('windows shebang', function (t) { + var child = cp.spawn('env', [fixture, 'xyz']) + var out = '' + child.stdout.on('data', function (c) { + out += c + }) + child.on('close', function (code, signal) { + t.equal(code, 0) + t.equal(signal, null) + t.equal(out, expect) + t.end() + }) +}) + t.test('exec shebang', { skip: winNoShebang }, function (t) { t.plan(3)