70 lines
1.9 KiB
JavaScript
Executable File
70 lines
1.9 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
/**
|
|
* Windows 산출물 정리
|
|
* - Setup.exe (NSIS 설치형)
|
|
* - portable.exe (포터블)
|
|
*/
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { DOWNLOAD_ARTIFACTS } from "./download-artifacts.mjs";
|
|
|
|
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
|
|
const distDir = path.join(root, "dist");
|
|
|
|
const MAP = [
|
|
{
|
|
patterns: [/^raw-win-x64-Setup\.exe$/i],
|
|
out: DOWNLOAD_ARTIFACTS.win64Installer,
|
|
},
|
|
{
|
|
patterns: [/^raw-win-x64-portable\.exe$/i],
|
|
out: DOWNLOAD_ARTIFACTS.win64Portable,
|
|
},
|
|
{
|
|
patterns: [/^raw-win-ia32-Setup\.exe$/i, /^raw-win-i386-Setup\.exe$/i],
|
|
out: DOWNLOAD_ARTIFACTS.win32Installer,
|
|
},
|
|
{
|
|
patterns: [/^raw-win-ia32-portable\.exe$/i, /^raw-win-i386-portable\.exe$/i],
|
|
out: DOWNLOAD_ARTIFACTS.win32Portable,
|
|
},
|
|
];
|
|
|
|
if (!fs.existsSync(distDir)) {
|
|
console.error("[finalize-win] dist 없음");
|
|
process.exit(1);
|
|
}
|
|
|
|
const files = fs.readdirSync(distDir);
|
|
let done = 0;
|
|
|
|
for (const rule of MAP) {
|
|
const srcName = files.find((f) => rule.patterns.some((re) => re.test(f)));
|
|
if (!srcName) {
|
|
console.warn(`[finalize-win] skip (원본 없음): ${rule.out}`);
|
|
continue;
|
|
}
|
|
const src = path.join(distDir, srcName);
|
|
const dest = path.join(distDir, rule.out);
|
|
if (src !== dest) {
|
|
if (fs.existsSync(dest)) fs.unlinkSync(dest);
|
|
fs.renameSync(src, dest);
|
|
}
|
|
const size = fs.statSync(dest).size;
|
|
console.log(`[finalize-win] ✅ ${rule.out} (${Math.round(size / 1024 / 1024)} MB) ← ${srcName}`);
|
|
done += 1;
|
|
}
|
|
|
|
for (const f of fs.readdirSync(distDir)) {
|
|
if (/^raw-win-/.test(f)) {
|
|
fs.unlinkSync(path.join(distDir, f));
|
|
console.log(`[finalize-win] removed ${f}`);
|
|
}
|
|
}
|
|
|
|
if (done === 0) {
|
|
console.error("[finalize-win] Windows 설치/포터블 산출물을 찾지 못했습니다.");
|
|
process.exit(1);
|
|
}
|