mirror of
https://github.com/HolographicHat/Yae.git
synced 2025-12-11 00:48:12 +08:00
58 lines
2.1 KiB
JavaScript
58 lines
2.1 KiB
JavaScript
const fs = require("fs")
|
|
const pkg = require("pkg")
|
|
const { log } = require("../utils")
|
|
const { version } = require("../version")
|
|
const { execSync } = require("child_process")
|
|
|
|
const name = `YaeAchievement-${ version.isDev ? "DevBuild" : "Release" }-${((t = new Date()) => {
|
|
const p = i => i.toString().padStart(2, "0")
|
|
return `${p(t.getMonth()+1)}${p(t.getDate())}${p(t.getHours())}${p(t.getMinutes())}`
|
|
})()}`
|
|
|
|
const generateAndCompileVersionInfo = () => {
|
|
const vci = version.name.split(".")
|
|
let content = fs.readFileSync("./version.rc", "utf-8")
|
|
content = content.replaceAll("${BID}" , vci[2] === undefined ? "0" : vci[2])
|
|
content = content.replaceAll("${YEAR}" , (new Date()).getFullYear())
|
|
content = content.replaceAll("${MAJOR_VERSION}", vci[0])
|
|
content = content.replaceAll("${MINOR_VERSION}", vci[1])
|
|
content = content.replaceAll("${ORIGINAL_NAME}", `${name}.exe`)
|
|
fs.writeFileSync("./tmp.rc", content, "utf-8")
|
|
execSync(`rh.exe -open tmp.rc -save tmp.res -action compile -log NUL`)
|
|
fs.rm("./tmp.rc", () => {})
|
|
}
|
|
|
|
const generateScript = (path) => {
|
|
let content = fs.readFileSync("./rh.script", "utf-8")
|
|
content = content.replaceAll("${PATH}", path)
|
|
fs.writeFileSync("./tmp.script", content, "utf-8")
|
|
}
|
|
|
|
const cleanUp = () => {
|
|
fs.rm("./rh.ini", () => {})
|
|
fs.rm("./tmp.res", () => {})
|
|
fs.rm("./tmp.script", () => {})
|
|
}
|
|
|
|
|
|
const c = {
|
|
forWin7: false,
|
|
sevenZipPath: "\"C:/Program Files/7-Zip/7z.exe\""
|
|
};
|
|
|
|
(async () => {
|
|
const fn = c.forWin7 ? `${name}-Win7` : name
|
|
const nv = c.forWin7 ? "14.19.1" : "16.14.2"
|
|
log("Generate and compile version info")
|
|
generateAndCompileVersionInfo()
|
|
log("Modify executable file resources")
|
|
const path = `C:/Users/holog/.pkg-cache/v3.3/built-v${nv}-win-x64`
|
|
generateScript(path)
|
|
execSync(`rh.exe -script tmp.script`)
|
|
cleanUp()
|
|
log("Build and compress package")
|
|
await pkg.exec(`../app.js -t node${nv.split(".")[0]}-win-x64 -C Brotli --build -o ${fn}.exe`.split(" "))
|
|
execSync(`${c.sevenZipPath} a ${fn}.7z ${fn}.exe -mx=9 -myx=9 -mmt=4 -sdel -stl`)
|
|
log("Done")
|
|
})()
|