UNPKG

@electron-forge/cli

Version:

A complete tool for building modern Electron applications

58 lines • 5.72 kB
import url from 'node:url'; import { styleText } from 'node:util'; import { initializeProxy } from '@electron/get'; import { api } from '@electron-forge/core'; import { resolveWorkingDir } from '@electron-forge/core-utils'; import { Option, program } from 'commander'; import './util/terminate.js'; import packageJSON from '../package.json' with { type: 'json' }; export async function getMakeOptions() { let workingDir; program .version(packageJSON.version, '-V, --version', 'Output the current version.') .helpOption('-h, --help', 'Output usage information.') .argument('[dir]', 'Directory to run the command in. (default: current directory)') .option('--from-package', `Make distributables from the output of a previous ${styleText('green', 'package')} run, instead of packaging the Electron application again.`) // `--skip-package` is deprecated. It is hidden from the help output and // prints a deprecation warning when used. .addOption(new Option('--skip-package', 'Deprecated: use --from-package instead.').hideHelp()) .option('-a, --arch [arch]', 'Target build architecture.', process.arch) .option('-p, --platform [platform]', 'Target build platform.', process.platform) .option('--targets [targets]', `Override your ${styleText('green', 'make')} targets for this run.`) .allowUnknownOption(true) .action((dir) => { workingDir = resolveWorkingDir(dir, false); }) .parse(process.argv); const options = program.opts(); if (options.skipPackage) { console.error(styleText('yellow', '⚠'), '`--skip-package` is deprecated and will be removed in a future major version; use `--from-package` instead.'); } const makeOpts = { dir: workingDir, interactive: true, fromPackage: Boolean(options.fromPackage || options.skipPackage), }; if (options.targets) makeOpts.overrideTargets = options.targets.split(','); if (options.arch) makeOpts.arch = options.arch; if (options.platform) makeOpts.platform = options.platform; return makeOpts; } // NOTE: this is a hack that exists because Node.js didn't add import.meta.main // support until 22.18.0. We should bump up the engines and get that fix before // we go to stable. // ref https://2ality.com/2022/07/nodejs-esm-main.html if (import.meta.url.startsWith('file:')) { const modulePath = url.fileURLToPath(import.meta.url); if (process.argv[1] === modulePath) { (async () => { const makeOpts = await getMakeOptions(); initializeProxy(); await api.make(makeOpts); })(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb24tZm9yZ2UtbWFrZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVjdHJvbi1mb3JnZS1tYWtlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxXQUFXLE1BQU0saUJBQWlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFFaEUsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjO0lBQ2xDLElBQUksVUFBa0IsQ0FBQztJQUN2QixPQUFPO1NBQ0osT0FBTyxDQUNOLFdBQVcsQ0FBQyxPQUFPLEVBQ25CLGVBQWUsRUFDZiw2QkFBNkIsQ0FDOUI7U0FDQSxVQUFVLENBQUMsWUFBWSxFQUFFLDJCQUEyQixDQUFDO1NBQ3JELFFBQVEsQ0FDUCxPQUFPLEVBQ1AsK0RBQStELENBQ2hFO1NBQ0EsTUFBTSxDQUNMLGdCQUFnQixFQUNoQixxREFBcUQsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsNERBQTRELENBQy9JO1FBQ0Qsd0VBQXdFO1FBQ3hFLDBDQUEwQztTQUN6QyxTQUFTLENBQ1IsSUFBSSxNQUFNLENBQ1IsZ0JBQWdCLEVBQ2hCLHlDQUF5QyxDQUMxQyxDQUFDLFFBQVEsRUFBRSxDQUNiO1NBQ0EsTUFBTSxDQUFDLG1CQUFtQixFQUFFLDRCQUE0QixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDdkUsTUFBTSxDQUNMLDJCQUEyQixFQUMzQix3QkFBd0IsRUFDeEIsT0FBTyxDQUFDLFFBQVEsQ0FDakI7U0FDQSxNQUFNLENBQ0wscUJBQXFCLEVBQ3JCLGlCQUFpQixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDcEU7U0FDQSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDeEIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDZCxVQUFVLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdkIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRS9CLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQ1gsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFDeEIsNkdBQTZHLENBQzlHLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQWdCO1FBQzVCLEdBQUcsRUFBRSxVQUFXO1FBQ2hCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFdBQVcsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO0tBQ2pFLENBQUM7SUFDRixJQUFJLE9BQU8sQ0FBQyxPQUFPO1FBQUUsUUFBUSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRSxJQUFJLE9BQU8sQ0FBQyxJQUFJO1FBQUUsUUFBUSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQy9DLElBQUksT0FBTyxDQUFDLFFBQVE7UUFBRSxRQUFRLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFFM0QsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELCtFQUErRTtBQUMvRSwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLHNEQUFzRDtBQUN0RCxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ1YsTUFBTSxRQUFRLEdBQUcsTUFBTSxjQUFjLEVBQUUsQ0FBQztZQUV4QyxlQUFlLEVBQUUsQ0FBQztZQUVsQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7QUFDSCxDQUFDIn0=