Skip to content

Commit

Permalink
Improve __dirname resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
mixu committed Apr 19, 2012
1 parent 9cfd86f commit 34445a8
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions index.js
@@ -1,5 +1,6 @@
var vm = require('vm'); var vm = require('vm'),
var path = require('path'); path = require('path'),
fs = require('fs');


// From lib/module.js in the Node.js core (v.0.5.3) // From lib/module.js in the Node.js core (v.0.5.3)
function stripBOM(content) { function stripBOM(content) {
Expand All @@ -12,18 +13,19 @@ function stripBOM(content) {
return content; return content;
} }


function runInContext(filename, sandbox) { function runInContext(filename, sandbox) {
var content = require('fs').readFileSync(require.resolve(filename), 'utf8'); var fullpath = require.resolve(filename),
content = fs.readFileSync(fullpath, 'utf8');
// remove shebang // remove shebang
content = stripBOM(content).replace(/^\#\!.*/, ''); content = stripBOM(content).replace(/^\#\!.*/, '');


// emulate require() // emulate require()
for (var k in global) { for (var k in global) {
sandbox[k] = global[k]; sandbox[k] = global[k];
} }
sandbox.require = require; sandbox.require = require;
sandbox.__filename = filename; sandbox.__filename = filename;
sandbox.__dirname = path.dirname(filename); sandbox.__dirname = path.dirname(fullpath)+'/';
sandbox.exports = {}; sandbox.exports = {};
sandbox.module = sandbox; sandbox.module = sandbox;
sandbox.global = sandbox; sandbox.global = sandbox;
Expand Down

0 comments on commit 34445a8

Please sign in to comment.