File: //proc/1526/cwd/tana/frontend/node_modules/cross-spawn/lib/util/readShebang.js
'use strict';
var fs = require('fs');
var LRU = require('lru-cache');
var shebangCommand = require('shebang-command');
var shebangCache = new LRU({ max: 50, maxAge: 30 * 1000 });  // Cache just for 30sec
function readShebang(command) {
    var buffer;
    var fd;
    var shebang;
    // Check if it is in the cache first
    if (shebangCache.has(command)) {
        return shebangCache.get(command);
    }
    // Read the first 150 bytes from the file
    buffer = new Buffer(150);
    try {
        fd = fs.openSync(command, 'r');
        fs.readSync(fd, buffer, 0, 150, 0);
        fs.closeSync(fd);
    } catch (e) { /* empty */ }
    // Attempt to extract shebang (null is returned if not a shebang)
    shebang = shebangCommand(buffer.toString());
    // Store the shebang in the cache
    shebangCache.set(command, shebang);
    return shebang;
}
module.exports = readShebang;