PHP 8.2.30
Preview: readShebang.js Size: 894 B
//lib/node_modules/npm/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;

Directory Contents

Dirs: 0 × Files: 5

Name Size Perms Modified Actions
875 B lrw-r--r-- 2021-03-10 14:36:37
Edit Download
391 B lrw-r--r-- 2021-03-10 14:36:37
Edit Download
431 B lrw-r--r-- 2021-03-10 14:36:37
Edit Download
894 B lrw-r--r-- 2021-03-10 14:36:37
Edit Download
805 B lrw-r--r-- 2021-03-10 14:36:37
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).