UNPKG

@electron-forge/cli

Version:

A complete tool for building modern Electron applications

50 lines (40 loc) 1.71 kB
import { initializeProxy } from '@electron/get'; import { api, MakeOptions } from '@electron-forge/core'; import chalk from 'chalk'; import { program } from 'commander'; import './util/terminate'; import packageJSON from '../package.json'; import { resolveWorkingDir } from './util/resolve-working-dir'; export async function getMakeOptions(): Promise<MakeOptions> { let workingDir: string; 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('--skip-package', `Skip packaging the Electron application, and use the output from a previous ${chalk.green('package')} run instead.`) .option('-a, --arch [arch]', 'Target build architecture.', process.arch) .option('-p, --platform [platform]', 'Target build platform.', process.platform) .option('--targets [targets]', `Override your ${chalk.green('make')} targets for this run.`) .allowUnknownOption(true) .action((dir) => { workingDir = resolveWorkingDir(dir, false); }) .parse(process.argv); const options = program.opts(); const makeOpts: MakeOptions = { dir: workingDir!, interactive: true, skipPackage: 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; } if (require.main === module) { (async () => { const makeOpts = await getMakeOptions(); initializeProxy(); await api.make(makeOpts); })(); }