This repository has been archived by the owner on Oct 23, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpkg.js
75 lines (58 loc) · 1.83 KB
/
pkg.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env node
var os = require('os');
var pkgjson = require('./package.json');
var path = require('path');
var sh = require('shelljs');
var appVersion = pkgjson.version
, electronPackager = 'electron-packager'
, electronVersion = '0.29.2'
, icon = 'icon.icns';
var archs = ['ia32', 'x64'];
if (process.argv[2] === '--all') {
// build for all platforms
var platforms = ['linux', 'darwin'];
// Only build for Windows when in Windows
if(process.platform === 'win32') platforms.push('win32');
platforms.forEach(function (plat) {
archs.forEach(function (arch) {
pack(plat, arch);
});
});
} else if (typeof process.argv[2] !== 'undefined' && process.argv[2].indexOf('--platform') > -1) {
archs.forEach(function (arch) {
var plat = process.argv[2];
pack(plat, arch);
});
} else {
// build for current platform only
pack(os.platform(), os.arch());
}
function pack (plat, arch) {
plat = plat.replace('--platform=', '');
var outputPath = path.join('.', 'build', 'releases', plat, arch);
sh.exec('./node_modules/.bin/rimraf ' + outputPath);
var appName = pkgjson.name;
if(plat == 'linux') appName = appName.toLowerCase();
// there is no darwin ia32 electron
if (plat === 'darwin' && arch === 'ia32') return;
var cmds = [];
var location = './';
cmds.push(electronPackager + ' '+location+' ' + appName +
' --platform=' + plat +
' --arch=' + arch +
' --version=' + electronVersion +
' --app-version=' + appVersion +
' --icon=' + icon +
' --out=' + outputPath +
((plat == 'linux') ? '' : ' --prune') +
((plat === 'win32') ? ' --asar=true' : '') +
' --ignore="build|electron-packager"');
for(var i in cmds){
console.log(cmds[i]);
if(process.platform == 'win32'){
sh.exec(cmds[i], {silent:true});
} else {
sh.exec(cmds[i]);
}
}
}