12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/env node
- var path = require('path')
- var log = require('npmlog')
- var fs = require('fs')
- var extend = require('xtend')
- var pkg = require(path.resolve('package.json'))
- var rc = require('./rc')(pkg)
- var download = require('./download')
- var util = require('./util')
- var prebuildClientVersion = require('./package.json').version
- if (rc.version) {
- console.log(prebuildClientVersion)
- process.exit(0)
- }
- if (rc.path) process.chdir(rc.path)
- log.heading = 'prebuild-install'
- if (rc.verbose) {
- log.level = 'verbose'
- }
- if (!fs.existsSync('package.json')) {
- log.error('setup', 'No package.json found. Aborting...')
- process.exit(1)
- }
- if (rc.help) {
- console.error(fs.readFileSync(path.join(__dirname, 'help.txt'), 'utf-8'))
- process.exit(0)
- }
- log.info('begin', 'Prebuild-install version', prebuildClientVersion)
- var opts = extend(rc, {pkg: pkg, log: log})
- var execPath = process.env.npm_execpath || process.env.NPM_CLI_JS
- if (util.isYarnPath(execPath) && /node_modules/.test(process.cwd())) {
- // From yarn repository
- } 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)
- }
- download(opts, function (err) {
- if (err) {
- log.warn('install', err.message)
- return process.exit(1)
- }
- log.info('install', 'Successfully installed prebuilt binary!')
- })
|