You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
549 B
23 lines
549 B
'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;
|
|
|