diff options
| author | pack <pack@packgekko.xyz> | 2026-08-09 10:37:07 +0000 |
|---|---|---|
| committer | pack <pack@packgekko.xyz> | 2026-08-09 10:37:07 +0000 |
| commit | 55a4f1fc869e41aca748c63d3018f0448b1606e0 (patch) | |
| tree | d132d1d01772b6d53faee3e63c534dea5706b78a /node_modules/prebuild-install/bin.js | |
| download | crud-55a4f1fc869e41aca748c63d3018f0448b1606e0.tar.gz | |
first commit
Diffstat (limited to 'node_modules/prebuild-install/bin.js')
| -rwxr-xr-x | node_modules/prebuild-install/bin.js | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/node_modules/prebuild-install/bin.js b/node_modules/prebuild-install/bin.js new file mode 100755 index 0000000..e5260cc --- /dev/null +++ b/node_modules/prebuild-install/bin.js @@ -0,0 +1,78 @@ +#!/usr/bin/env node + +const path = require('path') +const fs = require('fs') +const napi = require('napi-build-utils') + +const pkg = require(path.resolve('package.json')) +const rc = require('./rc')(pkg) +const log = require('./log')(rc, process.env) +const download = require('./download') +const asset = require('./asset') +const util = require('./util') + +const prebuildClientVersion = require('./package.json').version +if (rc.version) { + console.log(prebuildClientVersion) + process.exit(0) +} + +if (rc.path) process.chdir(rc.path) + +if (rc.runtime === 'electron' && rc.target[0] === '4' && rc.abi === '64') { + log.error(`Electron version ${rc.target} found - skipping prebuild-install work due to known ABI issue`) + log.error('More information about this issue can be found at https://github.com/lgeiger/node-abi/issues/54') + process.exit(1) +} + +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) + +const opts = Object.assign({}, rc, { pkg: pkg, log: log }) + +if (napi.isNapiRuntime(rc.runtime)) napi.logUnsupportedVersion(rc.target, log) + +const origin = util.packageOrigin(process.env, pkg) + +if (opts.force) { + log.warn('install', 'prebuilt binaries enforced with --force!') + log.warn('install', 'prebuilt binaries may be out of date!') +} else if (origin && origin.length > 4 && origin.substr(0, 4) === 'git+') { + log.info('install', 'installing from git repository, skipping download.') + process.exit(1) +} else if (opts.buildFromSource) { + log.info('install', '--build-from-source specified, not attempting download.') + process.exit(1) +} + +const startDownload = function (downloadUrl) { + download(downloadUrl, opts, function (err) { + if (err) { + log.warn('install', err.message) + return process.exit(1) + } + log.info('install', 'Successfully installed prebuilt binary!') + }) +} + +if (opts.token) { + asset(opts, function (err, assetId) { + if (err) { + log.warn('install', err.message) + return process.exit(1) + } + + startDownload(util.getAssetUrl(opts, assetId)) + }) +} else { + startDownload(util.getDownloadUrl(opts)) +} |