UNPKG

electron-packager-tf

Version:

Package and distribute your Electron app with OS-specific bundles (.app, .exe etc) via JS or CLI

43 lines (36 loc) 1.43 kB
'use strict' const common = require('./common') const fs = require('fs-extra-p') const path = require('path') const Promise = require('bluebird') module.exports = { createApp: (opts, buildDir) => { const newExePath = path.join(buildDir, `${common.sanitizeExecutableFilename(opts.name)}.exe`) return Promise.all([ common.initializeApp(opts, buildDir, path.join('resources', 'app')), fs.rename(path.join(buildDir, 'electron.exe'), newExePath) ]) .then(() => { const rcOpts = {'version-string': opts['version-string'] || {}} if (opts['build-version']) { rcOpts['file-version'] = opts['build-version'] } if (opts['app-version']) { rcOpts['product-version'] = opts['app-version'] } if (opts['app-copyright']) { rcOpts['version-string'].LegalCopyright = opts['app-copyright'] } if (opts.icon || opts['version-string'] || opts['app-copyright'] || opts['app-version'] || opts['build-version']) { return common.normalizeExt(opts.icon, '.ico') .then((icon) => { // Icon might be omitted or only exist in one OS's format, so skip it if normalizeExt reports an error if (icon != null) { rcOpts.icon = icon } return Promise.promisify(require('rcedit'))(newExePath, rcOpts) }) } }) } }