From 173d6989a11bdbd59a4ef4746e2677306848570b Mon Sep 17 00:00:00 2001 From: Tim Pietrusky Date: Wed, 21 Feb 2024 16:29:02 +0100 Subject: [PATCH] feat: integrated archive to create an archive needed during build --- scripts/archive.mjs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 scripts/archive.mjs diff --git a/scripts/archive.mjs b/scripts/archive.mjs new file mode 100644 index 000000000..8479ac0a2 --- /dev/null +++ b/scripts/archive.mjs @@ -0,0 +1,30 @@ +import fsp from "node:fs/promises"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +import Seven from "node-7z"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const my7z = path.join(__dirname, "..", "resources", "7zip", "win", "7za.exe"); + +const sourceFolder = path.join(__dirname, "..", "resources", "python-embedded"); +const outputArchive = path.join(__dirname, "..", "resources", "python-embedded.7z"); + +const files = await fsp.readdir(sourceFolder); + +const archive = Seven.add( + outputArchive, + files.map(file => path.join(sourceFolder, file)), + { + $bin: my7z, + recursive: true, + } +); + +archive.on("end", () => { + console.log("Compression finished"); +}); + +archive.on("error", error => { + console.error("Compression error:", error); +});