summaryrefslogtreecommitdiff
path: root/node_modules/detect-libc/lib
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/detect-libc/lib')
-rw-r--r--node_modules/detect-libc/lib/detect-libc.js92
1 files changed, 0 insertions, 92 deletions
diff --git a/node_modules/detect-libc/lib/detect-libc.js b/node_modules/detect-libc/lib/detect-libc.js
deleted file mode 100644
index 1855fe1..0000000
--- a/node_modules/detect-libc/lib/detect-libc.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict';
-
-var platform = require('os').platform();
-var spawnSync = require('child_process').spawnSync;
-var readdirSync = require('fs').readdirSync;
-
-var GLIBC = 'glibc';
-var MUSL = 'musl';
-
-var spawnOptions = {
- encoding: 'utf8',
- env: process.env
-};
-
-if (!spawnSync) {
- spawnSync = function () {
- return { status: 126, stdout: '', stderr: '' };
- };
-}
-
-function contains (needle) {
- return function (haystack) {
- return haystack.indexOf(needle) !== -1;
- };
-}
-
-function versionFromMuslLdd (out) {
- return out.split(/[\r\n]+/)[1].trim().split(/\s/)[1];
-}
-
-function safeReaddirSync (path) {
- try {
- return readdirSync(path);
- } catch (e) {}
- return [];
-}
-
-var family = '';
-var version = '';
-var method = '';
-
-if (platform === 'linux') {
- // Try getconf
- var glibc = spawnSync('getconf', ['GNU_LIBC_VERSION'], spawnOptions);
- if (glibc.status === 0) {
- family = GLIBC;
- version = glibc.stdout.trim().split(' ')[1];
- method = 'getconf';
- } else {
- // Try ldd
- var ldd = spawnSync('ldd', ['--version'], spawnOptions);
- if (ldd.status === 0 && ldd.stdout.indexOf(MUSL) !== -1) {
- family = MUSL;
- version = versionFromMuslLdd(ldd.stdout);
- method = 'ldd';
- } else if (ldd.status === 1 && ldd.stderr.indexOf(MUSL) !== -1) {
- family = MUSL;
- version = versionFromMuslLdd(ldd.stderr);
- method = 'ldd';
- } else {
- // Try filesystem (family only)
- var lib = safeReaddirSync('/lib');
- if (lib.some(contains('-linux-gnu'))) {
- family = GLIBC;
- method = 'filesystem';
- } else if (lib.some(contains('libc.musl-'))) {
- family = MUSL;
- method = 'filesystem';
- } else if (lib.some(contains('ld-musl-'))) {
- family = MUSL;
- method = 'filesystem';
- } else {
- var usrSbin = safeReaddirSync('/usr/sbin');
- if (usrSbin.some(contains('glibc'))) {
- family = GLIBC;
- method = 'filesystem';
- }
- }
- }
- }
-}
-
-var isNonGlibcLinux = (family !== '' && family !== GLIBC);
-
-module.exports = {
- GLIBC: GLIBC,
- MUSL: MUSL,
- family: family,
- version: version,
- method: method,
- isNonGlibcLinux: isNonGlibcLinux
-};