| "use strict"; |
| |
| var packager = require('electron-packager'); |
| const pkg = require('./package.json'); |
| const argv = require('minimist')(process.argv.slice(1)); |
| |
| const appName = argv.name || pkg.name; |
| const buildVersion = pkg.version || '1.0'; |
| const shouldUseAsar = argv.asar || false; |
| const shouldBuildAll = argv.all || false; |
| const arch = argv.arch || 'all'; |
| const platform = argv.platform || 'darwin'; |
| |
| const DEFAULT_OPTS = { |
| dir: './dist', |
| name: appName, |
| asar: shouldUseAsar, |
| buildVersion: buildVersion |
| }; |
| |
| |
| pack(platform, arch, function done(err, appPath) { |
| if (err) { |
| console.log(err); |
| } else { |
| console.log('Application packaged successfuly!', appPath); |
| } |
| |
| }); |
| |
| function pack(plat, arch, cb) { |
| // there is no darwin ia32 electron |
| if (plat === 'darwin' && arch === 'ia32') return; |
| |
| let icon = 'src/favicon'; |
| |
| if (icon) { |
| DEFAULT_OPTS.icon = icon + (() => { |
| let extension = '.png'; |
| if (plat === 'darwin') { |
| extension = '.icns'; |
| } else if (plat === 'win32') { |
| extension = '.ico'; |
| } |
| return extension; |
| })(); |
| } |
| |
| const opts = Object.assign({}, DEFAULT_OPTS, { |
| platform: plat, |
| arch, |
| prune: true, |
| overwrite: true, |
| all: shouldBuildAll, |
| out: `app-builds` |
| }); |
| |
| console.log(opts) |
| packager(opts, cb); |
| } |