• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const fs = require('fs');
4const shebangCommand = require('shebang-command');
5
6function readShebang(command) {
7    // Read the first 150 bytes from the file
8    const size = 150;
9    const buffer = Buffer.alloc(size);
10
11    let fd;
12
13    try {
14        fd = fs.openSync(command, 'r');
15        fs.readSync(fd, buffer, 0, size, 0);
16        fs.closeSync(fd);
17    } catch (e) { /* Empty */ }
18
19    // Attempt to extract shebang (null is returned if not a shebang)
20    return shebangCommand(buffer.toString());
21}
22
23module.exports = readShebang;
24