UNPKG

@electron-forge/cli

Version:

A complete tool for building modern Electron applications

58 lines • 6.43 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' }; import { getMakeOptions } from './electron-forge-make.js'; export async function runRelease() { 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('--target [target[,target...]]', 'A comma-separated list of deployment targets. (default: all publishers in your Forge config)') .option('--from-make', `Release the distributables from a previous ${styleText('green', 'make')} run, instead of packaging and making the Electron application again.`) // `--from-package` is declared here so that it shows up in the help // output; it is parsed with the other make options by getMakeOptions(). .option('--from-package', `Make and release distributables from the output of a previous ${styleText('green', 'package')} run, instead of packaging the Electron application again.`) // `--dry-run` and `--from-dry-run` are deprecated. They are hidden from // the help output and print a deprecation warning when used. .addOption(new Option('--dry-run', `Deprecated: run the ${styleText('green', 'make')} command instead.`).hideHelp()) .addOption(new Option('--from-dry-run', 'Deprecated: use --from-make instead.').hideHelp()) .allowUnknownOption(true) .action(async (targetDir) => { const dir = resolveWorkingDir(targetDir); const options = program.opts(); if (options.dryRun) { console.error(styleText('yellow', '⚠'), '`--dry-run` is deprecated and will be removed in a future major version. The `make` command now always saves its results, so run `electron-forge make` instead and then `electron-forge release --from-make` to release them.'); } if (options.fromDryRun) { console.error(styleText('yellow', '⚠'), '`--from-dry-run` is deprecated and will be removed in a future major version; use `--from-make` instead.'); } initializeProxy(); const releaseOpts = { dir, interactive: true, fromMake: Boolean(options.fromMake || options.fromDryRun), dryRun: Boolean(options.dryRun), }; if (options.target) releaseOpts.publishTargets = options.target.split(','); releaseOpts.makeOptions = await getMakeOptions(); await api.release(releaseOpts); }) .parse(process.argv); } // 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) { await runRelease(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlY3Ryb24tZm9yZ2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbGVjdHJvbi1mb3JnZS1yZWxlYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBa0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU1QyxPQUFPLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sV0FBVyxNQUFNLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVU7SUFDOUIsT0FBTztTQUNKLE9BQU8sQ0FDTixXQUFXLENBQUMsT0FBTyxFQUNuQixlQUFlLEVBQ2YsNkJBQTZCLENBQzlCO1NBQ0EsVUFBVSxDQUFDLFlBQVksRUFBRSwyQkFBMkIsQ0FBQztTQUNyRCxRQUFRLENBQ1AsT0FBTyxFQUNQLCtEQUErRCxDQUNoRTtTQUNBLE1BQU0sQ0FDTCwrQkFBK0IsRUFDL0IsOEZBQThGLENBQy9GO1NBQ0EsTUFBTSxDQUNMLGFBQWEsRUFDYiw4Q0FBOEMsU0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsdUVBQXVFLENBQ2hKO1FBQ0Qsb0VBQW9FO1FBQ3BFLHdFQUF3RTtTQUN2RSxNQUFNLENBQ0wsZ0JBQWdCLEVBQ2hCLGlFQUFpRSxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyw0REFBNEQsQ0FDM0o7UUFDRCx3RUFBd0U7UUFDeEUsNkRBQTZEO1NBQzVELFNBQVMsQ0FDUixJQUFJLE1BQU0sQ0FDUixXQUFXLEVBQ1gsdUJBQXVCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixDQUNyRSxDQUFDLFFBQVEsRUFBRSxDQUNiO1NBQ0EsU0FBUyxDQUNSLElBQUksTUFBTSxDQUNSLGdCQUFnQixFQUNoQixzQ0FBc0MsQ0FDdkMsQ0FBQyxRQUFRLEVBQUUsQ0FDYjtTQUNBLGtCQUFrQixDQUFDLElBQUksQ0FBQztTQUN4QixNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxFQUFFO1FBQzFCLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixPQUFPLENBQUMsS0FBSyxDQUNYLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQ3hCLCtOQUErTixDQUNoTyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxLQUFLLENBQ1gsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFDeEIsMEdBQTBHLENBQzNHLENBQUM7UUFDSixDQUFDO1FBRUQsZUFBZSxFQUFFLENBQUM7UUFFbEIsTUFBTSxXQUFXLEdBQW1CO1lBQ2xDLEdBQUc7WUFDSCxXQUFXLEVBQUUsSUFBSTtZQUNqQixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUN6RCxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDaEMsQ0FBQztRQUNGLElBQUksT0FBTyxDQUFDLE1BQU07WUFDaEIsV0FBVyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6RCxXQUFXLENBQUMsV0FBVyxHQUFHLE1BQU0sY0FBYyxFQUFFLENBQUM7UUFFakQsTUFBTSxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2pDLENBQUMsQ0FBQztTQUNELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELCtFQUErRTtBQUMvRSwrRUFBK0U7QUFDL0UsbUJBQW1CO0FBQ25CLHNEQUFzRDtBQUN0RCxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDIn0=