source: node_modules/prebuild-install/bin.js@ 62b2964

finki-main main
Last change on this file since 62b2964 was 81bc7da, checked in by Klimentina Efremova <klimentina08642@…>, 3 months ago

Initial commit

  • Property mode set to 100644
File size: 2.2 KB
Line 
1#!/usr/bin/env node
2
3const path = require('path')
4const fs = require('fs')
5const napi = require('napi-build-utils')
6
7const pkg = require(path.resolve('package.json'))
8const rc = require('./rc')(pkg)
9const log = require('./log')(rc, process.env)
10const download = require('./download')
11const asset = require('./asset')
12const util = require('./util')
13
14const prebuildClientVersion = require('./package.json').version
15if (rc.version) {
16 console.log(prebuildClientVersion)
17 process.exit(0)
18}
19
20if (rc.path) process.chdir(rc.path)
21
22if (rc.runtime === 'electron' && rc.target[0] === '4' && rc.abi === '64') {
23 log.error(`Electron version ${rc.target} found - skipping prebuild-install work due to known ABI issue`)
24 log.error('More information about this issue can be found at https://github.com/lgeiger/node-abi/issues/54')
25 process.exit(1)
26}
27
28if (!fs.existsSync('package.json')) {
29 log.error('setup', 'No package.json found. Aborting...')
30 process.exit(1)
31}
32
33if (rc.help) {
34 console.error(fs.readFileSync(path.join(__dirname, 'help.txt'), 'utf-8'))
35 process.exit(0)
36}
37
38log.info('begin', 'Prebuild-install version', prebuildClientVersion)
39
40const opts = Object.assign({}, rc, { pkg: pkg, log: log })
41
42if (napi.isNapiRuntime(rc.runtime)) napi.logUnsupportedVersion(rc.target, log)
43
44const origin = util.packageOrigin(process.env, pkg)
45
46if (opts.force) {
47 log.warn('install', 'prebuilt binaries enforced with --force!')
48 log.warn('install', 'prebuilt binaries may be out of date!')
49} else if (origin && origin.length > 4 && origin.substr(0, 4) === 'git+') {
50 log.info('install', 'installing from git repository, skipping download.')
51 process.exit(1)
52} else if (opts.buildFromSource) {
53 log.info('install', '--build-from-source specified, not attempting download.')
54 process.exit(1)
55}
56
57const startDownload = function (downloadUrl) {
58 download(downloadUrl, opts, function (err) {
59 if (err) {
60 log.warn('install', err.message)
61 return process.exit(1)
62 }
63 log.info('install', 'Successfully installed prebuilt binary!')
64 })
65}
66
67if (opts.token) {
68 asset(opts, function (err, assetId) {
69 if (err) {
70 log.warn('install', err.message)
71 return process.exit(1)
72 }
73
74 startDownload(util.getAssetUrl(opts, assetId))
75 })
76} else {
77 startDownload(util.getDownloadUrl(opts))
78}
Note: See TracBrowser for help on using the repository browser.