aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/prebuild-install/bin.js
diff options
context:
space:
mode:
authorpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
committerpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
commit55a4f1fc869e41aca748c63d3018f0448b1606e0 (patch)
treed132d1d01772b6d53faee3e63c534dea5706b78a /node_modules/prebuild-install/bin.js
downloadcrud-55a4f1fc869e41aca748c63d3018f0448b1606e0.tar.gz
first commit
Diffstat (limited to 'node_modules/prebuild-install/bin.js')
-rwxr-xr-xnode_modules/prebuild-install/bin.js78
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))
+}