UNPKG

balena-cli

Version:

The official balena Command Line Interface

130 lines 5.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupSentry = void 0; exports.setMaxListeners = setMaxListeners; exports.run = run; const packageJSON = require("../package.json"); const preparser_1 = require("./preparser"); const bootstrap_1 = require("./utils/bootstrap"); const lazy_1 = require("./utils/lazy"); const core_1 = require("@oclif/core"); exports.setupSentry = (0, lazy_1.onceAsync)(async () => { const config = await Promise.resolve().then(() => require('./config')); const Sentry = await Promise.resolve().then(() => require('@sentry/node')); Sentry.init({ autoSessionTracking: false, dsn: config.sentryDsn, release: packageJSON.version, }); Sentry.configureScope((scope) => { scope.setExtras({ is_pkg: !!process.pkg, node_version: process.version, platform: process.platform, }); }); return Sentry.getCurrentHub(); }); async function checkNodeVersion() { const validNodeVersions = packageJSON.engines.node; if (!(await Promise.resolve().then(() => require('semver'))).satisfies(process.version, validNodeVersions)) { const { getNodeEngineVersionWarn } = await Promise.resolve().then(() => require('./utils/messages')); console.warn(getNodeEngineVersionWarn(process.version, validNodeVersions)); } } function setupBalenaSdkSharedOptions(settings) { const BalenaSdk = require('balena-sdk'); BalenaSdk.setSharedOptions({ apiUrl: settings.get('apiUrl'), dataDirectory: settings.get('dataDirectory'), }); } function setMaxListeners(maxListeners) { require('events').EventEmitter.defaultMaxListeners = maxListeners; } async function init() { if (process.env.BALENARC_NO_SENTRY) { if (process.env.DEBUG) { console.error(`WARN: disabling Sentry.io error reporting`); } } else { await (0, exports.setupSentry)(); } await checkNodeVersion(); const settings = new bootstrap_1.CliSettings(); await (await Promise.resolve().then(() => require('./utils/proxy'))).setupGlobalHttpProxy(settings); setupBalenaSdkSharedOptions(settings); if (!process.env.BALENARC_OFFLINE_MODE) { (await Promise.resolve().then(() => require('./utils/update'))).notify(); } } async function oclifRun(command, options) { let deprecationPromise; if (preparser_1.unsupportedFlag || process.env.BALENARC_UNSUPPORTED) { deprecationPromise = Promise.resolve(); } else { const { DeprecationChecker } = await Promise.resolve().then(() => require('./deprecation')); const deprecationChecker = new DeprecationChecker(packageJSON.version); await deprecationChecker.warnAndAbortIfDeprecated(); deprecationPromise = deprecationChecker.checkForNewReleasesIfNeeded(); } const runPromise = (async function (shouldFlush) { var _a, _b; let isEEXIT = false; try { if (options.development) { process.env.NODE_ENV = 'development'; core_1.settings.debug = true; } await (0, core_1.run)(command, (_a = options.loadOptions) !== null && _a !== void 0 ? _a : options.dir); } catch (error) { if (((_b = error.oclif) === null || _b === void 0 ? void 0 : _b.exit) === 0) { isEEXIT = true; } else { throw error; } } if (shouldFlush) { const { flush } = await Promise.resolve().then(() => require('@oclif/core')); await flush(); } if (isEEXIT) { (await Promise.resolve().then(() => require('./fast-boot'))).stop(); } })(!options.noFlush); const { trackPromise } = await Promise.resolve().then(() => require('./hooks/prerun')); await Promise.all([trackPromise, deprecationPromise, runPromise]); } async function run(cliArgs = process.argv, options) { try { const { setOfflineModeEnvVars, normalizeEnvVars, pkgExec } = await Promise.resolve().then(() => require('./utils/bootstrap')); setOfflineModeEnvVars(); normalizeEnvVars(); if (cliArgs.length > 3 && cliArgs[2] === 'pkgExec') { return pkgExec(cliArgs[3], cliArgs.slice(4)); } await init(); (0, preparser_1.checkDeletedCommand)(cliArgs.slice(2)); const args = await (0, preparser_1.preparseArgs)(cliArgs); await oclifRun(args, options); } catch (err) { await (await Promise.resolve().then(() => require('./errors'))).handleError(err); } finally { try { (await Promise.resolve().then(() => require('./fast-boot'))).stop(); } catch (e) { if (process.env.DEBUG) { console.error(`[debug] Stopping fast-boot: ${e}`); } } process.stdin.pause(); } } //# sourceMappingURL=app.js.map