mirror of
https://github.com/ducbao414/win32.run.git
synced 2025-12-17 17:52:50 +09:00
75 lines
1.8 KiB
JavaScript
75 lines
1.8 KiB
JavaScript
const fs = require("fs");
|
|
const path = require("path");
|
|
const glob = require("glob");
|
|
|
|
const logFile = fs.createWriteStream(path.join(__dirname, "forge-hook.log"));
|
|
logFile.write("Hello World\n\n");
|
|
|
|
module.exports = {
|
|
"packagerConfig": {},
|
|
"makers": [
|
|
{
|
|
"name": "@electron-forge/maker-squirrel",
|
|
"config": {
|
|
"name": "tracky_mouse_electron"
|
|
}
|
|
},
|
|
{
|
|
"name": "@electron-forge/maker-zip",
|
|
"platforms": [
|
|
"darwin"
|
|
]
|
|
},
|
|
{
|
|
"name": "@electron-forge/maker-deb",
|
|
"config": {}
|
|
},
|
|
{
|
|
"name": "@electron-forge/maker-rpm",
|
|
"config": {}
|
|
}
|
|
],
|
|
hooks: {
|
|
prePackage: (forgeConfig) => {
|
|
logFile.write("prePackage hook\n\n");
|
|
return new Promise((resolve, reject) => {
|
|
const fromFolder = path.resolve(`${__dirname}/../`);
|
|
const toFolder = `${__dirname}/copied/`;
|
|
const appGlob = `${fromFolder}/**`;
|
|
logFile.write(`appGlob: ${appGlob} \n\n`);
|
|
glob(appGlob, {
|
|
ignore: [
|
|
".*/**",
|
|
"**/tracky-mouse-electron/**",
|
|
"**/node_modules/**",
|
|
"**/private/**",
|
|
]
|
|
}, async (error, files) => {
|
|
logFile.write(`glob callback, files:\n${JSON.stringify(files)}\n\n`);
|
|
|
|
logFile.write(`Deleting ${toFolder}\n\n`);
|
|
await fs.promises.rmdir(toFolder, { recursive: true });
|
|
|
|
if (error) {
|
|
logFile.write(`Failed to copy app files:\n${error}`);
|
|
reject(error);
|
|
return;
|
|
}
|
|
const copyPromises = [];
|
|
for (const file of files) {
|
|
const newFile = path.join(toFolder, path.relative(fromFolder, file));
|
|
if (!fs.statSync(file).isDirectory()) {
|
|
await fs.promises.mkdir(path.dirname(newFile), { recursive: true });
|
|
logFile.write(`Copy: ${file}\n`);
|
|
logFile.write(`To: ${newFile}\n`);
|
|
copyPromises.push(fs.promises.copyFile(file, newFile));
|
|
}
|
|
}
|
|
await Promise.all(copyPromises);
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|