#!/usr/bin/env node
/**
* Modified Source: `prebuild-install`
* https://github.com/prebuild/prebuild-install/blob/master/bin.js
*
* This install wrapper is written to provide support for the `--no-bin-links`
* install option provided by npm and yarn. It takes advantage of the module
* resolution logic to run instead of relying on the PATH env to perform the
* installation.
*/
const path = require('path');
const prebuildRC = require('prebuild-install/rc');
const prebuildDL = require('prebuild-install/download');
const prebuildUtil = require('prebuild-install/util');
const whichPM = require('which-pm-runs');
const log = require('npmlog');
const pkg = require(path.resolve(__dirname, '../package.json'));
const conf = prebuildRC(pkg);
const opts = Object.assign({}, conf, { pkg, log });
const pm = whichPM();
const npm = !pm || pm.name === 'npm';
if (conf.verbose) {
log.level = 'verbose';
}
if (opts.force) {
log.warn('install', 'prebuilt binaries enforced with --force!')
log.warn('install', 'prebuilt binaries may be out of date!')
} else if (!npm && /node_modules/.test(process.cwd())) {
// This is a NOOP conditional that is used to handle certain situations where
// the PM may build from source instead of attempting to download the binary.
} else if (!(typeof pkg._from === 'string')) {
log.info('install', 'installing standalone, skipping download.')
process.exit(1)
} else if (pkg._from.length > 4 && pkg._from.substr(0, 4) === 'git+') {
log.info('install', 'installing from git repository, skipping download.')
process.exit(1)
} else if (opts.compile === true || opts.prebuild === false) {
log.info('install', '--build-from-source specified, not attempting download.')
process.exit(1)
}
prebuildDL(prebuildUtil.getDownloadUrl(opts), opts, function(err) {
if (err) {
log.warn('install', err.message);
process.exit(1);
}
log.info('install', 'Successfully installed iltorb binary!');
});