diff options
Diffstat (limited to 'deps/npm/node_modules/cross-spawn/lib/util/readShebang.js')
-rw-r--r-- | deps/npm/node_modules/cross-spawn/lib/util/readShebang.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js b/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js new file mode 100644 index 0000000000..5e83733fef --- /dev/null +++ b/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js @@ -0,0 +1,23 @@ +'use strict'; + +const fs = require('fs'); +const shebangCommand = require('shebang-command'); + +function readShebang(command) { + // Read the first 150 bytes from the file + const size = 150; + const buffer = Buffer.alloc(size); + + let fd; + + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) { /* Empty */ } + + // Attempt to extract shebang (null is returned if not a shebang) + return shebangCommand(buffer.toString()); +} + +module.exports = readShebang; |