25 lines
867 B
JavaScript
25 lines
867 B
JavaScript
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import AdmZip from "adm-zip";
|
|
|
|
const root = process.cwd();
|
|
const dataDir = path.join(root, "static", "data");
|
|
const publicDataDir = path.join(root, "public", "data");
|
|
|
|
const zipFiles = fs.readdirSync(dataDir, { withFileTypes: true })
|
|
.filter((entry) => entry.isFile() && entry.name.endsWith(".zip"))
|
|
.map((entry) => path.join(dataDir, entry.name))
|
|
.sort((a, b) => fs.statSync(b).mtimeMs - fs.statSync(a).mtimeMs);
|
|
|
|
const latestZip = zipFiles.at(0);
|
|
if (!latestZip) {
|
|
throw new Error("No zip data to load in static/data");
|
|
}
|
|
|
|
fs.rmSync(path.join(publicDataDir, "pictures"), { recursive: true, force: true });
|
|
fs.rmSync(path.join(publicDataDir, "data.json"), { force: true });
|
|
|
|
const zip = new AdmZip(latestZip);
|
|
zip.extractAllTo(publicDataDir);
|
|
|
|
console.info(`Prepared data from: ${latestZip}`);
|