This repository has been archived by the owner on Sep 30, 2023. It is now read-only.
/
build.package.js
84 lines (79 loc) · 2.35 KB
/
build.package.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
76
77
78
79
80
81
82
83
84
const { copyFileSync } = require('fs');
const path = require('path');
const { spawn } = require('child_process');
async function exec(file, args, options) {
return new Promise((resolve, reject) => {
if (!options) {
options = {};
}
options.stdio = 'inherit';
const ps = spawn(file, args, options);
console.log('$ ' + file + ' ' + args.join(' '));
ps.on('error', err => {
reject(err);
});
ps.on('close', code => {
if (code === 0) {
resolve();
} else {
reject('Exit ' + code);
}
});
});
}
function copyFile(src, dst) {
console.log('Copy file', {
source: src,
destination: dst
});
copyFileSync(src, dst);
}
function packageApp(platform, arch) {
let packager = require('electron-packager');
return packager({
dir: '.',
appCopyright: 'Copyright © Ian Spence 2022',
arch: arch,
icon: 'icons/certbox',
name: 'Certbox',
out: 'package',
overwrite: true,
platform: platform,
appBundleId: 'com.tlsinspector.certbox',
appCategoryType: 'public.app-category.utility',
osxSign: false,
darwinDarkModeSupport: true,
executableName: 'certbox',
afterCopy: [
(buildPath, electronVersion, platform, arch, callback) => {
copyFile(path.resolve('dist', 'index.html'), path.join(buildPath, 'dist', 'index.html'));
// Certgen needs .exe extension on Windows
const certgenExt = platform === 'win32' ? '.exe' : '';
copyFile(path.resolve('certgen', 'certgen_' + platform + '_' + arch + certgenExt), path.join(buildPath, 'certgen' + certgenExt));
callback();
}
],
ignore: [
/\.es.*/,
/\.git.*/,
/LICENSE/,
/css/,
/html/,
/icons/,
/node_modules/,
/src/,
/certgen/,
/add_module.js/,
/build.[a-z]+.js/,
/package-lock.json/,
/README.md/,
/start_webpack.js/,
/run.js/,
/tsconfig.json/,
/webpack.[a-z]+.js/,
/.*map/,
]
});
}
exports.app = packageApp;
exports.exec = exec;