.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / os-locale / node_modules / cross-spawn / lib / util / readShebang.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/os-locale/node_modules/cross-spawn/lib/util/readShebang.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/os-locale/node_modules/cross-spawn/lib/util/readShebang.js
new file mode 100644 (file)
index 0000000..bd4f128
--- /dev/null
@@ -0,0 +1,32 @@
+'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;
+    let buffer;
+
+    if (Buffer.alloc) {
+        // Node.js v4.5+ / v5.10+
+        buffer = Buffer.alloc(size);
+    } else {
+        // Old Node.js API
+        buffer = new Buffer(size);
+        buffer.fill(0); // zero-fill
+    }
+
+    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;